/GL
(Optimisation complète du programme)
Active l'optimisation de l'ensemble du programme.
Syntaxe
/GL
[-
]
Notes
L’optimisation complète du programme permet au compilateur d’effectuer des optimisations avec des informations sur tous les modules du programme. Sans optimisation complète du programme, les optimisations sont effectuées sur une base par module (compileand).
L’optimisation complète du programme est désactivée par défaut et doit être activée explicitement. Toutefois, il est également possible de le désactiver explicitement avec /GL-
.
Avec des informations sur tous les modules, le compilateur peut :
Optimisez l’utilisation des registres au-delà des limites de fonction.
Effectuez un meilleur travail de suivi des modifications apportées aux données globales, ce qui permet une réduction du nombre de chargements et de magasins.
Effectuez le suivi de l’ensemble possible d’éléments modifiés par une déréférence de pointeur, ce qui réduit les charges et magasins requis.
Inline une fonction dans un module même lorsque la fonction est définie dans un autre module.
.obj
les fichiers générés avec /GL
ne sont pas utilisables par les utilitaires éditeur de liens tels que EDITBIN
et DUMPBIN
.
Si vous compilez votre programme avec /GL
et /c
que vous devez utiliser l’option /LTCG Linker pour créer le fichier de sortie.
/ZI
ne peut pas être utilisé avec /GL
Le format des fichiers générés dans /GL
la version actuelle n’est souvent pas lisible par les versions ultérieures de Visual Studio et l’ensemble d’outils MSVC. Sauf si vous êtes prêt à expédier des copies du .lib
fichier pour toutes les versions de Visual Studio, vous attendez à ce que vos utilisateurs utilisent, maintenant et à l’avenir, n’envoyez pas de .lib
fichier composé de .obj
fichiers produits par /GL
. Pour plus d’informations, consultez Restrictions sur la compatibilité binaire.
.obj
les fichiers d’en-tête générés par /GL
et précompilés ne doivent pas être utilisés pour générer un .lib
fichier, sauf si le .lib
fichier est lié sur le même ordinateur que celui qui a produit le /GL
.obj
fichier. Les informations du .obj
fichier d’en-tête précompilé du fichier sont nécessaires au moment du lien.
Pour plus d’informations sur les optimisations disponibles et les limitations de l’optimisation complète du programme, consultez /LTCG
. /GL
rend également l’optimisation guidée par profil disponible. Lors de la compilation pour les optimisations guidées de profil et si vous souhaitez commander des fonctions à partir de vos optimisations guidées de profil, vous devez compiler avec /Gy
ou une option de compilateur qui implique /Gy.
Pour définir cette option de l'éditeur de liens dans l'environnement de développement Visual Studio
Pour plus d’informations sur la façon de spécifier /GL
dans l’environnement de développement, consultez /LTCG
(Génération de code au moment du lien) .
Pour définir cette option de l'éditeur de liens par programmation
- Consultez WholeProgramOptimization.
Voir aussi
Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC