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