/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.