Я пытаюсь создать JIT для платформы RISC-V, но я не мог понять, как.Не могли бы вы дать несколько советов?Большое спасибо!
Изначально я обнаружил, что в LLVM есть бэкэнд RISCV, и скомпилировал его, следуя инструкциям здесь .Я получил кросс-компиляторную версию clang (работает на x86, а сгенерированный двоичный файл работает на RISC-V), но lli все еще является инструментом X86.
Затем я попытался собрать LLVM с riscv-gnu-toolchain , и у меня есть много инструментов, таких как llc, работающих с RISC-V должным образом.Тем не менее, lli все еще не мог работать должным образом.Когда я попытался обработать файл байт-кода LLVM (файл .ll) в RISC-V с помощью lli, я получил ошибку:
error creating EE: No available targets are compatible with this triple.
Кроме того, когда я набрал: lli -version, я получил:
LLVM версия 7.0.0svn
Сборка DEBUG с утверждениями.
Цель по умолчанию: x86_64-unknown-linux-gnu
ЦП хоста: (неизвестно)
Но когда я набрал: llc -version (работает нормально), я получил:
LLVM версия 7.0.0svn
сборка отладки сутверждения.
Цель по умолчанию: x86_64-unknown-linux-gnu
ЦП хоста: (неизвестно)
Зарегистрированные цели:
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.
Может кто-нибудь дать мне несколько советов?Большое спасибо !!