Как собрать lli (LLVM JIT) для RISCV? - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь создать 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.

Может кто-нибудь дать мне несколько советов?Большое спасибо !!

...