Разработка компиляторов



         

Зависимость качества оптимизации от размера участка экономии


Продемонстрируем теперь на примере зависимость качества оптимизации от размера участка экономии.

Фрагмент исходной программы показан в левой части иллюстрации. В правой части изображены возможные остаточные программы при локальной, квазилокальной и глобальной оптимизациях.

При локальной оптимизации произведено только понижение силы операций (умножение заменено на сдвиг).

При квазилокальной оптимизации помимо этого может быть упрощено выражение в then-части условного оператора. Для этого, однако, участок экономии должен включать в себя конструкцию ветвления.

Наконец, при глобальной оптимизации и при соответствующих свойствах функции f (ее значение должно полностью определяться значениями параметров и она не должна иметь побочных эффектов) исходный фрагмент может быть сокращен до вида, указанного на иллюстрации.




Содержание  Назад  Вперед