Hacker News Digest

31 августа 2025 г. в 15:50 • discourse.llvm.org • ⭐ 100 • 💬 6

OriginalHN

#llvm#clang#compiler-optimization#x86-64#aarch64#spec-cpu-2017#ir

10-20x Faster LLVM -O0 Back-End (2020)

TPDE-LLVM — новый бэкенд LLVM-O0, который в 10–20 раз быстрее стандартного, при сопоставимой скорости выполнения и росте кода на 10–30 %. Работает с IR Clang-O0/O1, цели x86-64 и AArch64.
Данные SPEC CPU 2017 (x86-64, ускорение компиляции и размер кода относительно LLVM 19 -O0):

бенчмарк O0 IR O1 IR
perl 11.4× / 1.27× 15.1× / 0.97×
gcc 12.5× / 1.32× 17.6× / 1.01×
omnetpp 21.5× / 1.24× 26.5× / 1.03×
геом.ср. 13.3× / 1.27× 17.6× / 0.97×

Как работает: три прохода — очистка IR, анализ (циклы + liveness), единый codegen (lowering, регистры, кодирование).
Поддержка: как библиотека, llc-подобный инструмент, патч для Clang. DWARF и улучшенный рег-аллокатор в планах.
Ограничения: не все IR-конструкции, векторы, TLS-глобалы, i260 и т.д.

Что ускорило бы LLVM ещё сильнее:

  • убрать ConstantExpr внутри функций;
  • запретить гигантские структуры/массивы как значения;
  • упростить доступ к TLS и произвольную битовую арифметику.