Расщепление тела цикла: различия между версиями

источники
Метки: визуальный редактор Задача для новичков
(источники)
Метки: визуальный редактор Задача для новичков
 
'''Расщепление тела цикла''' ({{lang-en|loop fission}}) — [[Оптимизирующий компилятор|оптимизация компилятора]], которая разбивает [[Цикл (программирование)|цикл]] в программе на несколько циклов, каждый из которых имеет те же индексные границы, однако содержит только часть тела исходного цикла.
 
Например, следующий [[код]]:
<source lang="c">
int i, a[100], b[100];
Ключевой задачей таких оптимизаций является сокращение числа операций цикла. Здесь основным методом оптимизации является расщепление [[Цикл (программирование)|цикла]] на несколько циклов, для каждого из которых число команд, необходимых для упаковки тела цикла, строго меньше числа команд для исходного цикла.
 
Распределение полезно для изоляции цикловых зависимостей по данным при подготовке к векторизации цикла, для перестановок циклов или повышения локальности путём уменьшения общего количества данных, на которые делаются [[Ссылка (программирование)|ссылки]] при полном выполнении каждого цикла.
 
== Примечания ==