Как собрать lli (LLVM JIT) для RISCV?
Я пытаюсь создать JIT для платформы RISC-V, но я не мог понять, как. Не могли бы вы дать несколько советов? Большое спасибо!
Первоначально я обнаружил, что LLVM имеет RISCV-бэкэнд, и скомпилировал его, следуя приведенным здесь инструкциям. Я получил кросс-компиляторную версию clang (работает на x86, а сгенерированный двоичный файл работает на RISC-V), но lli все еще является инструментом X86.
Затем я попытался собрать LLVM с помощью https://github.com/riscv/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
ЦП хоста: (неизвестно)
Но когда я набрал: ООО -версия (работает нормально), я получил:
LLVM версия 7.0.0svn
DEBUG строить с утверждениями.
Цель по умолчанию: 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.
Кто-нибудь может дать мне несколько советов? Огромное спасибо!!