Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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