Я не понимаю, как LLVM JIT относится к нормальной компиляции JIT, а документация не очень хороша.
Например, предположим, что я использую интерфейс clang
:
- Случай 1: Я компилирую файл C на native с clang/llvm. Этот поток, который я понимаю, похож на gcc-поток - я получаю исполняемый файл x86 и запускает его.
- Случай 2: Я собираюсь в какой-то LLVM IR, который работает на LLVM JIT. В этом случае исполняемый файл содержит время выполнения LLVM для выполнения IR на JIT или как он работает?
В чем разница между этими двумя и они правильны? Включает ли поток LLVM поддержку как JIT, так и не JIT? Когда я хочу использовать JIT - это имеет смысл вообще для языка, такого как C?