/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

Vedi anche

Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC