Оптимизация размера кода при сохранении времени выполнения посредством упорядочивания оптимизационных проходов уровня функций в компиляторе GCC
Автор: Лебедев Г.К., Ефанов Н.Н., Черныш М.В.
Журнал: Труды Московского физико-технического института @trudy-mipt
Рубрика: Информатика и управление
Статья в выпуске: 1 (65) т.17, 2025 года.
Бесплатный доступ
В связи с распространением встраиваемых систем с ограниченным объемом памяти, существует необходимость в уменьшении размера кода программного обеспечения при сохранении времени выполнения. Эта задача не была широко изучена исследователями. Компилятор GCC остается популярным выбором при компиляции программ для встраиваемых систем, однако исследования в области перестановки оптимизационных проходов не продвигались с момента выхода Milepost GCC, а текущие исследования автоматической настройки GCC сосредоточены на настройке флагов. В данной работе исследуется возможность упорядочения оптимизационных проходов в GCC для уменьшения размера кода без ущерба для времени выполнения. Предыдущие работы были сосредоточены на оптимизации всей программы, в то время как это исследование посвящено детальной настройке на уровне функций. Авторами предлагается новая система для изучения последовательностей оптимизаций на уровне функций для компилятора GCC, с целевой функцией размера кода и ограничением на постоянство времени выполнения. Также вводится понятие кэша оптимизаций функций, представляющего собой отображение функций в оптимизационные последовательности, который может улучшить выбор оптимизаций на этапе компиляции. В ходе экспериментов были получены такие результаты, как оценка вероятности того, что случайная последовательность оптимизаций превзойдет стандартную для GCC последовательность 02. а также распределение этой вероятности и зависимость этого распределения от исследуемой функции. Наконец, данная работа предлагает дальнейшие направления исследований: изучение взаимодействий между оптимизационными проходами, исследование пространства поиска и адаптивные стратегии по компиляции.
Уменьшение размера кода, сохранение времени выполнения, упорядочивание проходов, автоматическая настройка компилятора, оптимизация функций
Короткий адрес: https://sciup.org/142245206
IDR: 142245206