RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2015, том 27, выпуск 6, страницы 49–66 (Mi tisp184)

Эта публикация цитируется в 1 статье

Методы коррекции профильной информации в процессе компиляции

О. А. Четверина

АО «МЦСТ»

Аннотация: Эффективность проводимых компилятором оптимизирующих преобразований может быть значительно повышена с помощью получения и использования профильной информации об исполнении программы, такую работу компилятора называют profile guided optimization (PGO). После проведения преобразований, изменяющих граф потока управления, необходимо скорректировать профильную информацию, с целью сохранения ее актуальности для качественной работы последующих оптимизаций. В работе рассматриваются два способа представления профильной информации и переход между ними, описаны возможные причины возникновения дополнительной информации о потоке управления в оптимизируемом коде, требующей изменения профиля. Рассмотрены наиболее часто возникающие задачи проведения коррекции профильной информации и предложены следующие решения: алгоритм коррекции значений счетчиков ациклического участка по значениям счетчиков узлов выхода; алгоритм коррекции значения среднего числа итераций цикла; алгоритм коррекции профиля при обнаружении «противоречивого узла». Доказано, что разработанные алгоритмы коррекции значений счетчиков ациклического участка и числа итераций цикла позволяют минимально изменить соотношение значений счетчиков исходного графа. На их основе описан механизм коррекции профильной и тонкой профильной информации после проведения преобразования открутки итераций цикла. Все предложенные методы реализованы и используются в процессе компиляции оптимизирующими компиляторами lcc, lccs, lfortran, lfortrans для архитектур Эльбрус и Спарк.

Ключевые слова: профиль исполнения задачи, PGO, коррекция профиля, коррекция числа итераций цикла, расширенная профильная информация, взвешенный граф.

DOI: 10.15514/ISPRAS-2015-27(6)-4



Реферативные базы данных:


© МИАН, 2024