Поделиться через


/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

Установка параметра компоновщика программным способом

См. также

Ссылки

Параметры компилятора

Настройка параметров компилятора