Как собрать 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.

Кто-нибудь может дать мне несколько советов? Огромное спасибо!!

0 ответов

Другие вопросы по тегам