Как стать автором
Обновить

Комментарии 5

У jibjit код ужасен. Просто ужасен. Мораль — пишите понятно. Это решето алгоритмически можно очень нехило разогнать когда код прост и понятен.
Сорри оба ужасны. Я первоначальный алгоритм на паскале при беглом просмотре за эталон принял.
и libjit и llvm в принципе не предназначены, чтобы писать код на них ручками. Предполагается что должно быть какое-то дерево разбора, по которому генерируется код. поэтому разумеется когда пишешь это используя только API, код будет скриптообразный и тяжелый для восприятия.

Вариант с LLVM можно упростить на порядок — достаточно записать IR в файл, а потом его оттуда подгрузить и запустить.

Кроме того, откуда был взят LLVM IR? Написан руками? Или за основу был взять вывод, скажем, llvm-gcc -S -O3 -emit-llvm?
llvm IR был написан руками.

Насчет подгрузки файла, да разумеется, так можно было сделать, но я считаю это шагом назад от обьективного сравнения. Тогда получится, что для libjit время трансляции в исполняемый код полностью включено в результирующее время, а для llvm — только частично.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории