11.6.1. Общие сведения

На верх  Назад  Вперёд

Традиционно компиляторы оптимизируют программу процедура за процедурой, или в лучшем случае модуль за модулем. Оптимизация программы в целом (WPO) означает, что компилятор думает, что компиляция всех модулей создаёт программу или библиотеку и оптимизирует их, используя комбинации информации о том, как они используются вместе в данном конкретном случае.

Как правило WPO работает следующим образом:

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

Программа перекомпилируется второй раз (и дополнительно все используемые модули) с включением WPO, предоставляя сгенерированный на первом этапе файл обратной связи как дополнительный вход компилятору.

Этой схеме следует Free Pascal.

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