/Og (otimizações globais)
Fornece as otimizações de locais e globais, alocação de registro automático e a otimização de loop. Preterido.
/Og
Comentários
As seguintes otimizações estão disponíveis:
Eliminação de subexpressão comuns locais e globais
Dessa otimização, o valor de uma subexpressão comum é calculado de uma vez. No exemplo a seguir, se os valores de b e c não alterar entre as três expressões, o compilador pode atribuir o cálculo de b + c a uma variável temporária e substituir a variável b + c:
a = b + c; d = b + c; e = b + c;
Para otimização de subexpressão comum local, o compilador examina curtas seções de código para subexpressões comuns. Para a otimização global do subexpressão comum, o compilador pesquisa funções inteiras para subexpressões comuns.
Alocação de registro automático
Essa otimização permite que o compilador para variáveis de armazenamento usado com freqüência e subexpressões nos registradores; o register palavra-chave é ignorada.
Otimização de loop
Essa otimização remove subexpressões invariável do corpo de um loop. Um loop ideal contém somente as expressões cujos valores mudam a cada execução do loop. No exemplo a seguir, a expressão x + y não é alterado no corpo do loop:
i = -100; while( i < 0 ) { i += x + y; }
Após a otimização, x + y é calculado uma vez, em vez de cada vez que o loop é executado:
i = -100; t = x + y; while( i < 0 ) { i += t; }
Otimização de loop é muito mais eficaz quando o compilador não pode assumir nenhuma suavização de bordas, você pode definir com __restrict, noalias, ou restringir.
Observação Você pode habilitar ou desabilitar a otimização global em uma função por função base usando o optimize pragma com o g opção.
/Ogtambém permite a otimização de chamada retornar o valor, o que elimina o construtor de cópia e o destruidor de um valor de retorno de pilha com base. See / O1, /O2. (tamanho de minimizar, maximizar velocidade) for more information.
Para obter informações relacionadas, consulte Funções intrínsecas gerar (/Oi) e otimização completa (/ Ox).
/Ogé obsoleto; Use um /O1 ou /O2. For more information, see Deprecated Compiler Options in Visual C++ 2005.
Para definir esta opção de compilador no ambiente de desenvolvimento Visual Studio
Abra o projeto Property Pages caixa de diálogo. For details, see Como: Abrir páginas de propriedades do projeto.
Clique o C/C++ pasta.
Clique na a linha de comando página de propriedades.
Digite a opção de compilador no Opções adicionais de caixa.
Para definir esta opção de compilador programaticamente
- See AdditionalOptions.