Доступное выражение
Эта статья в значительной степени или полностью опирается на один источник . ( октябрь 2023 г. ) |
В области оптимизации компилятора доступные выражения — это алгоритм анализа, определяющий для каждой точки программы набор выражений , которые не нужно пересчитывать. Говорят, что эти выражения доступны в такой момент . Чтобы быть доступными в программной точке, операнды выражения не должны изменяться ни на каком пути от появления этого выражения до программной точки.
Анализ является примером задачи анализа прямого потока данных . Сохраняется набор доступных выражений. Каждый оператор анализируется, чтобы увидеть, изменяет ли он операнды одного или нескольких доступных выражений. Это дает наборы доступных выражений в конце каждого базового блока называется началом , который в терминах анализа потока данных . Выражение доступно в начале базового блока, если оно доступно в конце каждого из предшественников базового блока. Это дает набор уравнений в терминах доступных наборов, которые можно решить с помощью итерационного алгоритма.
Анализ доступных выражений используется для глобального исключения общих подвыражений (CSE). Если выражение доступно в какой-то момент, нет необходимости повторно вычислять его.
Ссылки
[ редактировать ]- Ахо, Сетхи и Уллман: Компиляторы - принципы, методы и инструменты. Издательство Addison-Wesley Publishing Company, 1986 г.