Преобразование программ на высокоуровневом языке программирования на основе результатов анализа низкоуровневого представления программ в системе SAPFOR

Авторы

Н.А. Катаев, В.И. Козырев

Аннотация

В статье рассматривается подход, позволяющий использовать результаты анализа низкоуровневого представления программы для выполнения ее преобразований на уровне исходного кода. Данный подход применяется в системе SAPFOR (System FOR Automated Parallelization) для приведения программ к потенциально параллельному виду и последующему выявлению в них неявного параллелизма. Для анализа программ используется система компиляторов LLVM (Low Level Virtual Machine). В качестве представления программы используется LLVM IR. Clang применяется для выполнения преобразований на уровне исходного кода. В статье рассматриваются преимущества выполнения анализа программ на уровне LLVM IR и особенности выполнения его преобразований с целью повышения качества проводимого анализа для исходной программы на языке высокого уровня.

Работа выполнена при поддержке Российского фонда фундаментальных исследований, проекты 17-01- 00820 и 18-01-00851.

Ключевые слова

анализ программ, преобразование программ на языке высокого уровня, LLVM, SAPFOR.

Язык

Русский

Библиографическая ссылка

Н.А. Катаев, В.И. Козырев. Преобразование программ на высокоуровневом языке программирования на основе результатов анализа низкоуровневого представления программ в системе SAPFOR // Параллельные вычислительные технологии – XIII международная конференция, ПаВТ'2019, г. Калининград, 2–4 апреля 2019 г. Короткие статьи и описания плакатов., Челябинск: Издательский центр ЮУрГУ, 2019, C. 251-262