Мощь и беспомощность автоматической оптимизации
юристы

Мощь и беспомощность автоматической оптимизации

Мощь и беспомощность автоматической оптимизации

Введение
Что не надо оптимизировать
Константная подстановка в условиях
Листинг1 не оптимизированный вариант
Листинг2 оптимизированный вариант
Удаление копий переменных
Листинг 3 переменные a и b — лишнее
Устранение хвостовой рекурсии
Листинг 5 хвостовая рекурсия до оптимизации


Листинг6 хвостовая рекурсия после оптимизации

Что надо оптимизировать
Удаление неиспользуемых функций
Внос инвариантных функций из циклов
Листинг 7 не оптимизированный вариант с инвариантом в теле цикла
Нормализация циклов
Листинг 9 ненормализованный цикл
Листинг10 нормализованный цикл
Разворот циклов
Листинг 13 цикл до разворота
Листинг14 цикл, развернутый на 4 итерации (меньшей размер, большая скорость)

Программная конвейеризация
Авто-параллелизм
Листинг 16 не оптимизированный вариант
Листинг17 оптимизированный вариант
Упорядочивание обращений к памяти
Листинг 20 обработка массивов по столбцам (не оптимизированный вариант)
Листинг21 обработка массивов по столбцам (оптимизированный вариант)
Удаление лишних обращений к памяти
Листинг 24 пример с лишними обращениями к памяти, от которых нельзя избавиться
Листинг25 пример с лишними обращениями к памяти, от которых можно избавиться вручную

Регистровые ре-ассоциации
Листинг 27 не оптимизированный кандидат на регистровую ре-ассоциацию
Заключение
Содержание раздела