/GL
(Optimización completa del programa)
Habilita la optimización completa del programa.
Sintaxis
/GL
[-
]
Comentarios
La optimización completa del programa permite al compilador realizar optimizaciones con información de todos los módulos del programa. Sin la optimización completa del programa, las optimizaciones se realizan por módulo (por compilando).
La optimización completa del programa está desactivada de manera predeterminada y debe habilitarse explícitamente. Sin embargo, también es posible deshabilitarla explícitamente con /GL-
.
Con información sobre todos los módulos, el compilador puede:
Optimizar el uso de registros a lo largo de los límites de función.
Realizar un mejor trabajo de seguimiento de las modificaciones a los datos globales, lo que permite reducir el número de cargas y almacenes.
Realizar un seguimiento del posible conjunto de elementos modificados por una desreferencia de puntero, lo que reduce las cargas y almacenes necesarios.
Insertar una función en un módulo, incluso cuando la función está definida en otro módulo.
Los archivos .obj
generados con /GL
no se pueden usar mediante utilidades del enlazador, como EDITBIN
y DUMPBIN
.
Si compila el programa con /GL
y /c
, debe usar la opción del enlazador /LTCG para crear el archivo de salida.
/ZI
no se puede usar con /GL
A menudo, el formato de los archivos generados con /GL
en la versión actual no es legible en las versiones posteriores de Visual Studio y del conjunto de herramientas de MSVC. A menos que esté dispuesto a enviar copias del archivo .lib
a todas las versiones de Visual Studio que vayan a utilizar sus usuarios, ahora y en el futuro, no envíe un archivo .lib
formado por archivos .obj
generados por /GL
. Para más información, consulte Restricciones de compatibilidad binaria.
.obj
Los archivos generados por /GL
y los archivos de encabezado precompilados no deben usarse para compilar un .lib
archivo a menos que el .lib
archivo esté vinculado en la misma máquina que generó el /GL
.obj
archivo. La información del archivo de encabezado precompilado del archivo .obj
es necesaria en el tiempo de vínculo.
Para más información sobre las optimizaciones disponibles y las limitaciones de la optimización completa del programa, consulte /LTCG
. /GL
también hace que la optimización guiada por perfiles esté disponible. Si desea que sus optimizaciones guiadas por perfiles tengan ordenamiento de funciones, debe compilar dichas optimizaciones con /Gy
o con una opción del compilador que implique /Gy.
Para establecer esta opción del vinculador en el entorno de desarrollo de Visual Studio
Para más información sobre cómo especificar /GL
en el entorno de desarrollo, consulte /LTCG
(Generación de código en tiempo de vínculo).
Para establecer esta opción del vinculador mediante programación
Consulte también
Opciones del compilador de MSVC
Sintaxis de línea de comandos del compilador de MSVC