riscv-llvm
riscv-llvm copied to clipboard
How to build lli (LLVM JIT) for RISCV?
Hi everyone,
I am trying to build a JIT for the RISC-V platform, but I could not figure out how. Could you provide some hints? Great thanks!
Initially, I found that LLVM has RISCV backend, and I compiled it following the instructions here https://github.com/lowRISC/riscv-llvm. I got a cross-compiler version of clang (running on x86 and the generated binary runs on RISC-V), but the lli is still a X86 tool.
Then, I tried to build LLVM with riscv-gnu-toolchain https://github.com/riscv/riscv-gnu-toolchain, and I got many tools such as llc working on RISC-V properly. However, the lli still could not work properly. When I tried to process the LLVM bytecode file (.ll file) on RISC-V using lli, I got the error: error creating EE: No available targets are compatible with this triple. Furthermore, when I typed: ./lli --version, I got:
Default target:
x86_64-unknown-linux-gnu
Host CPU: (unknown)
But when I typed: llc -version (llc works fine), I got:
DEBUG build with assertions.
Default target: x86_64-unknown-linux-gnu
Host CPU: (unknown)
Registered Targets:
riscv32 - 32-bit RISC-V
riscv64 - 64-bit RISC-V
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
It seems that the lli tool does not support RISC-V target.
Could anyone give me some hints? Thank you so much!!
Best,
Hi,
You aren't doing anything wrong. lli
does not, in fact, support RISC-V.
Best, Luís