Статический и динамический подходы к преобразованию косвенных переходов

Аннотация

С ростом популярности модульной парадигмы программирования количество косвенных переходов в продуцируемом коде значительно возросло. Аппаратные способы уменьшить задержки, связанные с такими переходами, требуют сложной логики непосредственно на кристалле, которую зачастую невыгодно реализовывать из-за дополнительного энергопотребления процессора.
Существующие в компиляторе GCC подходы преобразования косвенных переходов позволяют существенно увеличить производительность программ, однако без сбора статистики и перекомпиляции кода, все еще остается большое количество непреобразованных переходов, которые приводят к уменьшению производительности программ.
В этой статьи предлагается два метода повышения производительности, связанных с оптимизацией косвенных переходов. Статический метод позволяет расширить существующие оптимизационные возможности компилятора. Динамический метод является новым подходом подстановки целевых адресов переходов во время выполнения программы.
Наше исследование показывает, что эти подходы способны увеличить производительность отдельных участков программ, содержащих косвенные переходы, до 2.3 раз. Применение статического метода позволило улучшить производительность отдельных тестов из пакета CPUBench на 15%, при увеличении затраченного на компиляцию времени не более чем на 1%.

Сведения об авторах

Viacheslav Victorovich Chernonog, ООО "Техкомпания Хуавэй"

сотрудник

Ilia Leonidovich Diachkov, ООО "Коулмэн Сервисиз"

сотрудник

Andrey Dmitrievich Dobrov, ООО "Техкомпания Хуавэй"

сотрудник, кандидат технических наук

Опубликована
2023-06-30
Как цитировать
CHERNONOG, Viacheslav Victorovich; DIACHKOV, Ilia Leonidovich; DOBROV, Andrey Dmitrievich. Статический и динамический подходы к преобразованию косвенных переходов. Современные информационные технологии и ИТ-образование, [S.l.], v. 19, n. 2, june 2023. ISSN 2411-1473. Доступно на: <http://sitito.cs.msu.ru/index.php/SITITO/article/view/959>. Дата доступа: 22 sep. 2023
Раздел
Прикладные проблемы оптимизации