Научите свой компилятор оптимизировать

Наша миссия – предложить технологию, позволяющую существенно упростить как модификацию существующих компиляторов, так и создание новых. Разработанная нами Универсальная Библиотека Трансляции (УБТ) состоит из большого числа реализованных алгоритмов анализа и оптимизаций, а также промежуточного представления, способного отражать семантику программы, написанной на любом известном императивном языке программирования. Реализация указанных алгоритмов выполнена в виде библиотеки строительных блоков. Это дает возможность гибкого использования только тех элементов библиотеки, которые необходимы для решения задачи пользователя. Промежуточное представление и развитая инфраструктура позволяют эффективно создавать новые системы трансляции и анализа. Ниже показаны сферы применения библиотеки строительных блоков.

Building Blocks

УБТ может быть использована как в уже существующих, так и вновь создаваемых системах компиляции практически для любой целевой архитектуры (более подробная информация содержится в разделе Технология). Функциональность модернизируемой с использованием УБТ системы или же создаваемой с нуля системы компиляции полного цикла, а также интерфейсы взаимодействия с УБТ определяются в каждой конкретном случае отдельно. В разделе УБТ можно ознакомиться с описанием функциональности предлагаемой библиотеки.

В настоящее время с помощью УБТ нами реализован автоматический распараллеливатель для вычислительных систем в рамках широко распространенного компилятора GCC (GNU Compiler Collection). Ознакомиться с описанием предлагаемого распараллеливателя, а также скачать демо-версию можно здесь.