Распространение копирования
В теории компиляторов распространение копирования — это процесс замены вхождений целей прямого присваивания их значениями. [ 1 ] Прямое присвоение – это инструкция вида x = y
, который просто присваивает значение y
к x
.
Из следующего кода:
y = x z = 3 + y
Распространение копирования даст:
z = 3 + x
Распространение копирования часто использует достижения определений , цепочки использования-определения и цепочки определения-использования при вычислении того, какие экземпляры цели могут быть безопасно заменены. Если все открытые способы использования цели можно безопасно изменить, операцию присвоения можно исключить.
Распространение копирования — это полезная оптимизация «очистки», часто используемая после того, как уже были выполнены другие этапы компиляции. Некоторые оптимизации, такие как классические реализации исключения общих подвыражений. [ 1 ] — требовать , чтобы распространение копирования выполнялось впоследствии, чтобы добиться повышения эффективности.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Ахо, Альфред В.; Лам, Моника С.; Сетхи, Рави; Уллман, Джеффри Д. (2007). Составители, принципы, методы и инструменты. Второе издание . ISBN 978-0-321-48681-3 .
Дальнейшее чтение
[ редактировать ]Мучник, Стивен С. Расширенное проектирование и реализация компилятора . Морган Кауфманн. 1997.