libgccjit: как прикрутить JIT к игрушечному интерпретатору В… — NOP::Nuances of Programming — TG.ME

libgccjit: как прикрутить JIT к игрушечному интерпретатору

В документации GCC есть туториал, где стековый интерпретатор байткода компилируется в машинный код. Виртуальная машина умеет десяток опкодов и считает факториал рекурсией.

Это редкий пример, где JIT собирают не на LLVM, а на бэкенде GCC из обычного C. Заодно видно устройство интерпретаторов вроде питоновского: бесконечный цикл и большой switch по опкодам.

Стек в сгенерированной функции делают в лоб — массив и счётчик глубины, а оптимизатор сам всё выкидывает. Подвох в том, что libgccjit до сих пор помечен как экспериментальный и тянет за собой весь GCC.

🔗 Подробнее

@nuancesprog #Languages #C
👍2
August 26, 2026 2.2K 4