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

       

Покадровая оптимизация


Одним из самых простых видов оптимизаций является так называемая покадровая оптимизация, которая обычно применяется на уровне машинно-зависимого представления программы.

Суть покадровой оптимизации - поиск сравнительно короткой последовательности инструкций, удовлетворяющей определенным контекстным условиям, и замена такой последовательности на более эффективную.

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

На слайде приведен пример работы покадрового оптимизатора. В данном случае были распознаны следующие образцы:

  • Переход на следующую инструкцию (обозначен номером 1).
  • Две одинаковые инструкции пересылки (номер 2).
  • Пересылка данных через вспомогательный регистр, значение которого далее не используется (номер 3).
  • Засылка нуля в регистр (номер 4).
  • Переход на переход (номер 5).

Результат применения покадровой оптимизации является программа, показанная на слайде справа.



Содержание раздела