Оптимизация размера кода при сохранении времени выполнения посредством упорядочивания оптимизационных проходов уровня функций в компиляторе GCC

Автор: Лебедев Г.К., Ефанов Н.Н., Черныш М.В.

Журнал: Труды Московского физико-технического института @trudy-mipt

Рубрика: Информатика и управление

Статья в выпуске: 1 (65) т.17, 2025 года.

Бесплатный доступ

В связи с распространением встраиваемых систем с ограниченным объемом памяти, существует необходимость в уменьшении размера кода программного обеспечения при сохранении времени выполнения. Эта задача не была широко изучена исследователями. Компилятор GCC остается популярным выбором при компиляции программ для встраиваемых систем, однако исследования в области перестановки оптимизационных проходов не продвигались с момента выхода Milepost GCC, а текущие исследования автоматической настройки GCC сосредоточены на настройке флагов. В данной работе исследуется возможность упорядочения оптимизационных проходов в GCC для уменьшения размера кода без ущерба для времени выполнения. Предыдущие работы были сосредоточены на оптимизации всей программы, в то время как это исследование посвящено детальной настройке на уровне функций. Авторами предлагается новая система для изучения последовательностей оптимизаций на уровне функций для компилятора GCC, с целевой функцией размера кода и ограничением на постоянство времени выполнения. Также вводится понятие кэша оптимизаций функций, представляющего собой отображение функций в оптимизационные последовательности, который может улучшить выбор оптимизаций на этапе компиляции. В ходе экспериментов были получены такие результаты, как оценка вероятности того, что случайная последовательность оптимизаций превзойдет стандартную для GCC последовательность 02. а также распределение этой вероятности и зависимость этого распределения от исследуемой функции. Наконец, данная работа предлагает дальнейшие направления исследований: изучение взаимодействий между оптимизационными проходами, исследование пространства поиска и адаптивные стратегии по компиляции.

Еще

Уменьшение размера кода, сохранение времени выполнения, упорядочивание проходов, автоматическая настройка компилятора, оптимизация функций

Короткий адрес: https://sciup.org/142245206

IDR: 142245206

Статья научная