/GL
(Ottimizzazione dell'intero programma)
Attiva l'ottimizzazione dell'intero programma.
Sintassi
/GL
[-
]
Osservazioni:
L'ottimizzazione dell'intero programma consente al compilatore di eseguire ottimizzazioni con informazioni su tutti i moduli del programma. Senza l'ottimizzazione dell'intero programma, le ottimizzazioni vengono eseguite su base per modulo (compiland).
L'ottimizzazione dell'intero programma è disattivata per impostazione predefinita e deve essere abilitata in modo esplicito. Tuttavia, è anche possibile disabilitarlo in modo esplicito con /GL-
.
Con informazioni su tutti i moduli, il compilatore può:
Ottimizzare l'uso dei registri attraverso i limiti delle funzioni.
Eseguire un processo migliore per tenere traccia delle modifiche apportate ai dati globali, consentendo una riduzione del numero di carichi e archivi.
Tenere traccia del possibile set di elementi modificati da una dereferenziazione del puntatore, riducendo i carichi e gli archivi necessari.
Inline una funzione in un modulo anche quando la funzione è definita in un altro modulo.
.obj
i file prodotti con /GL
non sono utilizzabili dalle utilità del linker, ad EDITBIN
esempio e DUMPBIN
.
Se si compila il programma con /GL
e /c
, è necessario usare l'opzione del linker /LTCG per creare il file di output.
/ZI
non può essere usato con /GL
Il formato dei file prodotti con /GL
nella versione corrente spesso non è leggibile dalle versioni successive di Visual Studio e dal set di strumenti MSVC. A meno che non si sia disposti a spedire copie del .lib
file per tutte le versioni di Visual Studio che si prevede che gli utenti usino, ora e in futuro, non spedire un .lib
file costituito .obj
da file prodotti da /GL
. Per altre informazioni, vedere Restrizioni sulla compatibilità binaria.
.obj
i file prodotti dai /GL
file di intestazione precompilati e non devono essere usati per compilare un .lib
file a meno che il .lib
file non sia collegato nello stesso computer che ha prodotto il /GL
.obj
file. Le informazioni del .obj
file di intestazione precompilato sono necessarie in fase di collegamento.
Per altre informazioni sulle ottimizzazioni disponibili con e le limitazioni dell'ottimizzazione dell'intero programma, vedere /LTCG
. /GL
rende disponibile anche l'ottimizzazione guidata del profilo. Durante la compilazione per le ottimizzazioni guidate del profilo e se si desidera eseguire l'ordinamento delle funzioni dalle ottimizzazioni guidate del profilo, è necessario compilare con /Gy
o un'opzione del compilatore che implica /Gy.
Per impostare questa opzione del linker nell'ambiente di sviluppo di Visual Studio
Per altre informazioni su come specificare /GL
nell'ambiente di sviluppo, vedere /LTCG
(Generazione di codice in fase di collegamento).
Per impostare l'opzione del linker a livello di codice
- Vedere WholeProgramOptimization.
Vedi anche
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC