Представлен бэкенд TPDE-LLVM, работающий в 10-20 раз быстрее LLVM в режиме без оптимизации

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 4242
Зарегистрирован: 20.08.2022

#

Представлен бэкенд TPDE-LLVM, работающий в 10-20 раз быстрее LLVM в режиме без оптимизации
Дата публикации:Fri, 06 Jun 2025 14:16:13 +0300




Исследователи из Мюнхенского технического университета опубликовали инструментарий TPDE и основанный на нём бэкенд компилятора для LLVM - TPDE-LLVM, обеспечивающий генерацию машинного кода для архитектур x86-64 и AArch64 на основе промежуточного представления кода LLVM-IR. При тестировании TPDE-LLVM оказался быстрее бэкенда LLVM -O0 (генератор кода без оптимизаций) в 10-20 раз при том же уровне производительности результирующего машинного кода и увеличении размера на 10-30%. Наработки проекта опубликованы под лицензией Apache 2.0.



TPDE-LLVM изначально нацелен на обеспечение компиляции с минимальными задержками и уровнем качества, соответствующим режиму сборки без оптимизаций ("-O0"). Проектом предоставляется утилита для обособленного запуска tpde-llc, библиотека для интеграции в приложения (например, для реализации функциональности JIT-компилятора) и патчи для интеграции с Clang и Flang.
Изображение


Проект может использоваться в качестве базового компилирующего компонента для JIT или для создания неоптимизированных сборок. TPDE-LLVM сосредоточен только на скорости компиляции и не пытается конкурировать с оптимизирующими бэкендами LLVM, которые по сравнению с TPDE-LLVM работают существенно медленнее, но позволяют генерировать более быстрый и компактный машинный код (примерно в 2 раза быстрее и в 2 раза меньше по размеру).



TPDE-LLVM использует для генерации кода три стадии:
    • Чистка и подготовка промежуточного представления LLVM;
    • Анализ информации о циклах и использовании переменных;
    • Формирование машинного кода.
Изображение




Отмечается, что при участии авторов TPDE в ветки LLVM 19 и 20 уже добавлены оптимизации, позволившие ускорить работу штатного бэкенда LLVM на 18% на платформе x86-64 и на 13% на платформе ARM64. По мнению авторов TPDE, в будущем малой кровью можно будет ускорить бэкенд LLVM ещё возможно на 10-20%, но дальнейшее повышение производительности потребует значительных изменений. При этом даже при значительной переработке маловероятно, что существующий бэкенд LLVM удастся ускорить в 10 раз.




На текущем этапе развития среди целей проекта TPDE заявлено обеспечение поддержки промежуточного представления кода LLVM, полученного фронтэндом Clang в режимах оптимизации "-O0" и "-O1". Обработка промежуточного представления, созданного в режиме "-O2", пока не гарантируется из-за отсутствия поддержки в TPDE векторных операций. Частично поддерживается промежуточный код от Flang и компилятора Rust.









Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63368

Жизнь за Нер'зула!

Ответить