В работе представлен алгоритм конвейеризации циклов, отличающийся тем, что его характеристики удовлетворяют достаточно жёстким требованиям к работе динамического двоичного оптимизирующего транслятора. Использование алгоритма ускорило время работы результирующего кода почти на 7% для задач из пакета SpecInt95, и более чем на 35% для задач из пакета SpecFP95.
Динамическая трансляция и динамическая двоичная трансляция являются предметом многих исследований. Интерес к этой области объясняется тем, что архитектура микропроцессоров не стоит на месте, а постоянно развивается. Появляются новые перспективные архитектуры, подчас основанные на совершенно новых идеях, развиваются уже существующие. Эффективным методом обеспечения совместимости со старыми архитектурами является технология двоичной трансляции [1, 2].
В данной статье рассматривается алгоритм программной конвейеризации циклов, разработанный специально для динамического двоичного оптимизирующего компилятора. Описанный алгоритм был реализован в динамическом двоичном трансляторе с исходной архитектурой x86 в целевую архитектуру «Эльбрус» [3, 4, 5].
Подробнее... Загрузить файл ![]()
Содержание:
Введение
- Основные определения
- Разметка времён на расширенном графе зависимостей
- Алгоритм конвейеризации циклов
- Результаты экспериментов
Заключение
Литература