№ 1 УДК 004.3 SSA-ФОРМА ДЛЯ МАССИВОВ И ЕЁ ПРИМЕНЕНИЯ 2012 г. В.Н. Шаповалов, С.А. Чурилов, И.В. Мамай ФГНУ НИИ «Спецвузавтоматика», Ростов-на-Дону FGNU NII «Specvuzavtomatika», Rostov-on-Don Вводится SSA-форма для массивов: новое расширение формы со статически однократным присваиванием на код с массивами. <...> Показано, что такое расширение позволяет улучшить существующие оптимизирующие преобразования, использующие SSA-форму. <...> Предложен алгоритм выполнения подстановки в цикле и переименования массивов в цикле с помощью SSAформы для массивов. <...> Новое преобразование «удаление полумёртвого кода» оптимизирует циклы с полумертвым кодом, а иногда может и распараллелить их. <...> A new extension of static single assignment form called SSA form for arrays is introduced in the paper. <...> Algorithm for construction of SSA form for arrays is suggested. <...> It is shown that suggested extension can improve existing optimizing transformations based on SSA form. <...> Algorithms to perform forward substitution and array renaming in loops is suggested. <...> Введение В данной работе предлагается расширение скалярной SSA-формы (static single assignment form, форма со статически однократным присваиванием) [1] на код с массивами. <...> Скалярная SSA-форма в настоящее время часто используется в качестве внутреннего представления в оптимизирующих компиляторах. <...> Она благоприятствует многим скалярным преобразованиям, например удалению мертвого кода, протягиванию констант, использованию общих подвыражений, распределению регистров и другим. <...> Если известен поток данных каждого элемента массива, можно построить более точную SSA-форму. <...> Более того, для такой SSA-формы можно сформулировать и новые преобразования. <...> Пример такого преобразования – удаление полумертвого кода – приводится в статье далее. <...> Другими авторами было сделано несколько попыток расширения SSA-формы на массивы: Array SSAформа (форма со статически однократным присваиванием массивам) и основанная на ней (Weak) Dynamic Single Assignment Form [2] ((слабая) динамическая форма с однократным присваиванием), Region Array SSA [3] (форма со статически однократным присваиванием фрагментов массивов). <...> 23 Скалярная SSA-форма и её расширения <...>