Compartir a través de


/GL (Optimización de todo el programa)

Actualización: noviembre 2007

Habilita la optimización completa del programa.

/GL[-]

Comentarios

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 por la eliminación de referencia de 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 Referencia de EDITBIN y Referencia de DUMPBIN.

Si compila un programa con /GL y /c (Compilar sin vincular), debe utilizar la opción del vinculador /LTCG para crear el archivo de resultados.

/Z7, /Zi, /ZI (Formato de la información de depuración) no se puede utilizar 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 acerca de las optimizaciones disponibles con la optimización de todo el programa y sus limitaciones, vea /LTCG (Generación de código en tiempo de enlace). /GL también permite que haya optimizaciones guiadas por perfiles disponibles (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 (Habilitar vinculación en el nivel de función) 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

Vea también

Referencia

Opciones del compilador

Establecer las opciones del compilador