Копирование распространения - Copy propagation
В теория компилятора, копирование распространения представляет собой процесс замены вхождений целей прямого присвоения их значениями.[1] Прямое задание - это инструкция вида х = у
, который просто присваивает значение у
к Икс
.
Из следующего кода:
у = хз = 3 + у
Копирование даст:
г = 3 + х
Для распространения копий часто используются достижение определений, цепочки use-def и def-use цепи при вычислении того, какие вхождения цели можно безопасно заменить. Я упал открытые вверх виды использования цели можно безопасно изменить, операцию присваивания можно исключить.
Распространение копирования - это полезная оптимизация «очистки», которая часто используется после того, как другие оптимизации уже были выполнены. Некоторые оптимизации, например устранение общих подвыражений[1]—требовать это распространение копий запускается впоследствии, чтобы добиться повышения эффективности.
Смотрите также
Рекомендации
- ^ а б Ахо, Альфред V .; Lam, Monica S .; Сетхи, Рави; Ульман, Джеффри Д. Компиляторы, принципы, методы и инструменты Второе издание. ISBN 0-321-48681-1.
дальнейшее чтение
Мучник, Стивен С. Расширенный дизайн и реализация компилятора. Морган Кауфманн. 1997 г.