Инверсия цикла
Инверсия цикла (англ. Loop inversion) — оптимизация компилятора и трансформация цикла, в ходе которой While-цикл[англ.] заменяется на оператор ветвления, содержащий Do-While-цикл[англ.]. При правильном использовании данная оптимизация повышает производительность за счет конвейеризации.
Пример на С
Например, следующий код:
int i, a[100]; i = 0; while (i < 100) { a[i] = 0; i++; }
в результате применения оптимизации преобразовывается в:
int i, a[100]; i = 0; if (i < 100) { do { a[i] = 0; i++; } while (i < 100); }
Примечания
Литература
- Альфред Ахо, Моника Лам, Рави Сети, Джеффри Ульман. Компиляторы: принципы, технологии и инструментарий = Compilers: Principles, Techniques, and Tools. — 2-е издание. — М.: «Вильямс», 2008. — 1184 с. — 1500 экз. — ISBN 978-5-8459-1349-4.
- Steven S. Muchnick. Advanced Compiler Design and Implementation. — 5-е издание. — San Francisco: Morgan Kaufmann Publishers, 1997. — 856 с. — ISBN 1-55860-320-4.
- Kennedy, Ken; & Allen, Randy. Optimizing Compilers for Modern Architectures: A Dependence-based Approach (англ.). — Morgan Kaufmann, 2001. — ISBN 1-55860-286-0.
🔥 Top keywords: Заглавная страницаЯндексЦивилёва, Анна ЕвгеньевнаБотулизмСлужебная:ПоискЧемпионат Европы по футболу 2024Годовщины свадьбыYouTubeГорнин, Леонид ВладимировичЦивилёв, Сергей ЕвгеньевичШевцова, Татьяна ВикторовнаКурбан-байрамЧемпионат Европы по футболу 2020Фрадков, Михаил ЕфимовичБРИКССпортивные игры БРИКС 2024Список умерших в 2024 годуДом Дракона (2-й сезон)Мбаппе, КилианПопов, Павел АнатольевичРоссияСавельев, Олег ГенриховичЧемпионат Европы по футболуЦаликов, Руслан ХаджисмеловичСборная Украины по футболуБриджертоныПацаны (4-й сезон)Путин, Владимир ВладимировичКлеопатраЛепс, Григорий ВикторовичЛукаку, РомелуДом ДраконаГоловоломка 2Криштиану РоналдуТедеско, ДоменикоСборная Румынии по футболуРебров, Сергей СтаниславовичЧикатило, Андрей РомановичСборная Франции по футболу