我正在尝试为RISC-V平台构建JIT,但我不知道如何。您能提供一些提示吗?非常感谢!
最初,我发现LLVM具有RISCV后端,并按照说明here对其进行了编译。我有一个交叉编译的clang版本(在x86上运行,生成的二进制文件在RISC-V上运行),但是lli仍然是X86工具。
然后,我尝试使用riscv-gnu-toolchain构建LLVM,并且获得了很多工具,例如llc在RISC-V上正常工作。但是,lli仍然无法正常工作。当我尝试使用lli在RISC-V上处理LLVM字节码文件(.ll文件)时,出现错误:
error creating EE: No available targets are compatible with this triple.
此外,当我输入:lli -version时,我得到了:
LLVM版本7.0.0svn
使用断言建立调试。
默认目标:x86_64-unknown-linux-gnu
主机CPU :(未知)
但是当我键入:llc -version(llc正常工作)时,我得到了:
LLVM版本7.0.0svn
带有断言的DEBUG构建。
默认目标:x86_64-unknown-linux-gnu
主机CPU :(未知)
注册目标:
riscv32-32位RISC-V
riscv64-64位RISC-V
x86-32位X86:Pentium-Pro及更高版本
x86-64-64位X86:EM64T和AMD64
lli工具似乎不支持RISC-V目标,但是llc很好地支持RISC-V目标。
有人可以给我一些提示吗?非常感谢!!