/GL
(Otimização do programa inteiro)
Habilita a otimização de todo o programa.
Sintaxe
/GL
[-
]
Comentários
A otimização do programa inteiro permite que o compilador execute otimizações com informações sobre todos os módulos do programa. Sem a otimização de programa inteiro, as otimizações são executadas por módulo (compiland).
A otimização do programa inteiro está desativada por padrão e deve ser explicitamente habilitada. No entanto, também é possível desabilitá-la explicitamente com /GL-
.
Com informações sobre todos os módulos, o compilador pode:
Otimizar o uso de registradores entre limites de função.
Realizar um trabalho melhor de acompanhamento de modificações em dados globais, permitindo uma redução no número de carregamentos e armazenamentos.
Acompanhar o possível conjunto de itens modificados por uma desreferência de ponteiro, reduzindo os carregamentos e armazenamentos necessários.
Embutir uma função em um módulo mesmo que a função esteja definida em outro módulo.
Os arquivos .obj
produzidos com /GL
não são utilizáveis por utilitários do vinculador, como EDITBIN
e DUMPBIN
.
Se você compilar o programa com /GL
e /c
, você deverá usar a opção do vinculador /LTCG para criar o arquivo de saída.
/ZI
não pode ser usado com /GL
O formato de arquivos produzidos com /GL
na versão atual geralmente não é legível por versões posteriores do Visual Studio e do conjunto de ferramentas do MSVC. A menos que você esteja disposto a enviar cópias do arquivo .lib
para todas as versões do Visual Studio que você espera que seus usuários usem agora e no futuro, não envie um arquivo .lib
composto por arquivos .obj
produzidos por /GL
. Para obter mais informações, confira Restrições de compatibilidade binária.
.obj
Arquivos produzidos por /GL
e arquivos de cabeçalho pré-compilados não devem ser usados para criar um .lib
arquivo, a menos que o .lib
arquivo esteja vinculado no mesmo computador que produziu o /GL
.obj
arquivo. As informações do cabeçalho pré-compilado do arquivo .obj
são necessárias no tempo de vinculação.
Para obter mais informações sobre as otimizações disponíveis e as limitações da otimização do programa inteiro, confira /LTCG
. /GL
também disponibiliza a otimização guiada de perfil. Ao compilar para otimizações guiadas de perfil e se você quiser ordenamento de funções das otimizações guiadas de seu perfil, você deverá compilar com /Gy
ou uma opção de compilador que com a opção /Gy implícita.
Para definir esta opção do vinculador no ambiente de desenvolvimento do Visual Studio
Para obter mais informações sobre como especificar /GL
no ambiente de desenvolvimento, confira /LTCG
(Geração de código em tempo de vinculação).
Para definir esta opção do vinculador por meio de programação
- Consulte WholeProgramOptimization.
Confira também
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC