/GL (Optimización de todo el programa)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

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 compilar 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 disponible con y las limitaciones de la optimización completa del programa, vea /LTCG. /GL crea también la optimización guiada por perfiles (PGO) disponible; 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

  1. Vea /LTCG (Generación de código en tiempo de enlace) para obtener información sobre cómo especificar /GL en el entorno de desarrollo.

Para establecer esta opción del vinculador mediante programación

  1. Vea WholeProgramOptimization.

Opciones del compilador
Establecer las opciones del compilador

Mostrar: