Новости TPDE вышел в open-source и уже положил Clang на лопатки

NewsMaker

I'm just a script
Премиум
19,427
40
8 Ноя 2022
В 20 раз быстрее без оптимизаций.


hqwpaldkuacu0y32ofeg8swkgrrhseyk.jpg


Исследователи из Технического университета Мюнхена (TUM) представили TPDE — инструмент для быстрой компиляции кода, который способен ускорить сборку для архитектур x86_64 и AArch64 в 10–20 раз по сравнению с LLVM Clang на базовом уровне оптимизации <code>-O0</code>. Новый backend-компилятор ориентирован на задачи с минимальной задержкой — например, для JIT-сборки или быстрой отладки без оптимизаций. Исходный код проекта уже Для просмотра ссылки Войди или Зарегистрируйся , а описание архитектуры опубликовано Для просмотра ссылки Войди или Зарегистрируйся .

TPDE работает как самостоятельный модуль генерации кода, совместимый с SSA IR и заточенный под низкую задержку компиляции. В текущей версии поддерживаются только платформы с ELF — x86-64 и AArch64 (Armv8.1). Качество кода на уровне <code>-O0</code>, по утверждению авторов, вполне сопоставимо с LLVM, при этом время сборки сокращается в разы.

Отдельный компонент, Для просмотра ссылки Войди или Зарегистрируйся , представляет собой backend для LLVM IR, который компилирует код в 10–20 раз быстрее, чем стандартный LLVM на <code>-O0</code>. Его можно использовать как библиотеку, отдельную утилиту (<code>tpde-llc</code>) или встроить в Clang/Flang с помощью патча. Такой подход делает TPDE привлекательным для JIT-систем, где важны скорость и предсказуемость сборки.

Разработчики также представили TPDE на Для просмотра ссылки Войди или Зарегистрируйся , где подробно описали особенности фреймворка, привели данные тестирования и сравнения со стандартным LLVM. В частности, они указали, что их решение поддерживает типичный поднабор LLVM IR и фокусируется только на x86-64 и AArch64.

В результатах бенчмарков SPEC CPU 2017, опубликованных вместе с анонсом, TPDE стабильно показывает в 10–20 раз более короткое время сборки при аналогичной производительности итогового кода. Единственным компромиссом оказывается увеличенный размер бинарников — на 10–30%.

Важно подчеркнуть, что TPDE не конкурирует с LLVM на уровнях <code>-O2</code> или <code>-O3</code>, где активны продвинутые оптимизации. Его задача — быстрое получение рабочего кода с минимальной задержкой, например, при частой перекомпиляции в ходе отладки или в средах с ограниченными ресурсами.

Сейчас проект сосредоточен на <code>-O0</code> и <code>-O1</code>, но команда TUM надеется развивать TPDE дальше — расширять поддержку LLVM IR и исследовать возможности ускоренной компиляции с оптимизациями. В условиях роста интереса к JIT и edge-компиляции это направление может получить широкое распространение.
 
Источник новости
www.securitylab.ru

Похожие темы