/GL (оптимизация всей программы)
Включает оптимизацию всей программы.
/GL[-]
Заметки
Оптимизация всей программы позволяет компилятору выполнять оптимизацию с помощью информации о всех модулях в программе. Если оптимизация всей программы не включена, оптимизация выполняется отдельно для каждого модуля (объекта компиляции).
Оптимизация всей программы по умолчанию отключена и должна включаться явным образом. В то же время ее также можно явным образом отключить с помощью параметра /GL-.
Компилятор может производить следующие действия с помощью информации о всех модулях:
Оптимизировать использование регистров за границами функций.
Улучшенным образом отслеживать изменение глобальных данных, что позволит уменьшить число загрузок и сохранений.
Улучшенным образом отслеживать возможные наборы элементов, измененных разыменованием указателя, что позволит уменьшить число загрузок и сохранений.
Встраивать функцию в модуль даже в том случае, если функция определена в другом модуле.
Файлы OBJ, созданные с помощью параметра /GL, не будут доступны таким средствам компоновщика, как EDITBIN и DUMPBIN.
Если программа компилируется с помощью параметров /GL и /c, для создания выходного файла необходимо использовать параметр компоновщика /LTCG.
Параметр /ZI не может использоваться с параметром /GL
Формат файлов, создаваемых с помощью параметра /GL в текущей версии, может не восприниматься последующими версиями Visual C++. Включать в поставку LIB-файл, состоящий из OBJ-файлов, созданных с помощью параметра /GL, следует только в том случае, если требуется включить в поставку копии LIB-файла для всех версий Visual C++, которые пользователи используют сейчас и могут использовать в будущем.
Файлы OBJ, созданные с помощью параметра /GL, и файлы предкомпилированных заголовков не следует использовать для построения файла LIB, если файл LIB не будет компоноваться на том же компьютере, на котором с помощью параметра /GL был создан файл OBJ. Данные из файла предкомпилированного заголовка OBJ-файла потребуются во время компоновки.
Дополнительные сведения о доступных способа оптимизации, и ограничениях всей оптимизации программы см. в разделе /LTCG. /GL вносит профильную оптимизацию доступной; см. /LTCG. При компиляции с оптимизацией с использованием профиля и необходимости упорядочивания функций на основе оптимизации с использованием профиля следует использовать при компиляции параметр /Gy или другой параметр компилятора, подразумевающий параметр /Gy.
Установка данного параметра компоновщика в среде разработки Visual Studio
- Дополнительные сведения о способе указания параметра /GL в среде разработки см. в разделе Параметр /LTCG (создание кода во время компоновки).
Установка данного параметра компоновщика программным способом
- См. раздел WholeProgramOptimization.