Compartilhar via


/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çãoObservaçã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

  1. Abra o projeto Property Pages caixa de diálogo. For details, see Como: Abrir páginas de propriedades do projeto.

  2. Clique o C/C++ pasta.

  3. Clique na a linha de comando página de propriedades.

  4. Digite a opção de compilador no Opções adicionais de caixa.

Para definir esta opção de compilador programaticamente

Consulte também

Referência

/O opções (otimizar o código)

Opções do compilador

Definindo opções do compilador