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

       

Зависимость между оптимизациями


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

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

  • Независимость. Преобразования T1 и T2 называются независимыми, если применение одного из них к программе не влияет на применимость другого.
  • Повторность. Преобразование T1 повторно по отношению к преобразованию T2 , если для произвольной программы p из применимости к ней T2 следует применимость его к T1 (p) .
  • Тупиковость. Преобразование T1 тупиково по отношению к преобразованию T2 , если для произвольной программы p T2 неприменимо к T1 (p) .



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