Эффективная реализация ассемблерных вставок в оптимизирующем компиляторе языка высокого уровня
Васько Мария Богдановна
Группа 22126
Руководитель:
Трепаков Иван Сергеевич
Аннотация
Применение высокоуровнего языка для решения задач системного программирования требует поддержки ассемблерных вставок, которые позволяют напрямую встраивать фрагменты низкоуровневого ассемблерного кода в программу. Такая функциональность открывает возможности для осуществления системных вызовов, использования специальных инструкций процессора, а также потенциальной оптимизации критических по производительности участков программы.
Однако, применение ассемблерных вставок имеет ряд недостатков: отсутствие переносимости между разными архитектурами процессоров, сложность написания, поддержки и проверки корректности ассемблерного кода. Более того, ассемблерные вставки зачастую препятствуют оптимизации других участков кода, так как являются барьером для оптимизации и анализа в компиляторе.
В данной работе исследуются подходы к анализу и оптимизации ассемблерных вставок путем использования низкоуровневого внутреннего представления компилятора в качестве языка написания таких фрагментов. В рамках работы выполнена экспериментальная реализация ассемблерных вставок и проведен сравнительный анализ на базе оптимизирующего статического компилятора многоязыковой виртуальной машины Huawei.