Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

/GL (Optimización de todo el programa)

Habilita la optimización completa del programa.

/GL[-]

La optimización de todo el programa permite al compilador realizar optimizaciones con información de todos los módulos del programa. Sin la optimización de todo el programa, las optimizaciones se llevan a cabo módulo a módulo (compilando).

La optimización de todo el programa está desactivada de forma predeterminada y debe habilitarse explícitamente. Sin embargo, también es posible deshabilitarla explícitamente mediante /GL-.

Con información de todos los módulos, el compilador puede:

  • Optimizar el uso de los registros más allá de los límites de las funciones.

  • Consiga efectuar un mejor seguimiento de las modificaciones a los datos globales, permitiendo una reducción del número de cargas y almacenes.

  • Consiga efectuar un mejor seguimiento del posible conjunto de elementos modificados al desreferenciar un puntero, reduciendo los números de cargas y almacenes.

  • Procesar una función inline en un módulo incluso si la función está definida en otro módulo.

Los archivos .obj generados con /GL no estarán disponibles para utilidades de vinculador del tipo EDITBIN y DUMPBIN.

Si compila un programa con /GL y /c, debe utilizar la opción del vinculador /LTCG para crear el archivo de salida.

/ZI no se puede usar con /GL

El formato de los archivos generados con /GL en la versión actual puede no ser legible con versiones posteriores de Visual C++. No distribuya un archivo .lib compuesto por archivos .obj generados con /GL a menos que esté dispuesto a distribuir copias del archivo .lib para todas las versiones de Visual C++ que puedan utilizar sus usuarios, ahora y en el futuro.

Los archivos .obj generados con /GL y los archivos de encabezado precompilados no deben utilizarse para generar un archivo .lib salvo que éste se vincule en el mismo equipo en que se generó el archivo .obj de /GL. La información del archivo de encabezado precompilado del archivo .obj se necesita para realizar la vinculación.

Para obtener más información sobre las optimizaciones disponibles y las limitaciones de optimización de todo el programa, vea /LTCG. /GL también deja disponible la optimización guiada por perfiles; vea /LTCG. Cuando compile para obtener optimizaciones guiadas por perfiles, y si desea que haya ordenación de funciones desde estas optimizaciones, debe compilar 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 establecer esta opción del vinculador mediante programación

Mostrar: