Мне жаль говорить, что LLVM просто не очень быстрый, как JIT-компилятор, лучше как AOT / статический компилятор.
Я столкнулся с такими же проблемами со скоростью в моем Проект llvm-lua .Я отключил JIT-компиляцию больших функций Lua.У llvm-lua не включена поддержка отложенной компиляции, поскольку LLVM требует слишком много места в C-стеке для запуска из сопрограмм Lua.
Также, если вы используете это в функции main () вашей программы:
llvm::cl::ParseCommandLineOptions(argc, argv, 0, true);
Он предоставит множество параметров командной строки из LLVM, таких как -time-pass, которые позволят синхронизировать проходы LLVM, чтобы увидеть, какие части JIT-компиляции занимают больше всего времени.