How to build lli (LLVM JIT) for RISCV?
- Dominant language
- Shell
- Stars
- 277
- Forks
- 55
- PR merge metrics
- No merged PRs in 30d
Description
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 . 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
, 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,
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the reported lli failure on RISC-V with the LLVM .ll file and compare it with the working llc build. Read the lli and llc version output and the linked LLVM and riscv-gnu-toolchain build instructions. Done means lli can process the .ll file on RISC-V without the incompatible-target error.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100