Partilhar via


/Og (otimizações globais)

Fornece as otimizações locais e globais, o registro automático alocação e otimização de loop.Preterido.

/Og

Comentários

As seguintes otimizações estão disponíveis:

  • Eliminação de subexpressão locais e globais comuns

    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 otimizar o subexpressão comum local, o compilador examina curtas seções de código para subexpressões comuns.Para otimizar o subexpressão comum global, o compilador pesquisa funções inteiras para subexpressões comuns.

  • Alocação do 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 nenhum serrilhado, definido com __restrict, noalias, ou restringir.

    ObservaçãoObservação

    Você pode ativar ou desativar a otimização global em uma base por função-função usando o optimize pragma com o g opção.

/Ogtambém permite a otimização de chamada retornar valor, o que elimina o construtor de cópia e o destruidor de um valor de retorno de pilha com base.Consulte / O1, /O2. (tamanho de minimizar, maximizar velocidade) para obter mais informações.

Para obter informações relacionadas, consulte Funções intrínsecas gerar (/Oi) e otimização completa (/ Ox).

/Ogé obsoleto; use either /O1 or /O2.Para obter mais informações, consulte Deprecated Compiler Options.

Para definir esta opção de compilador no ambiente de desenvolvimento Visual Studio

  1. Abra o projeto Páginas de propriedades caixa de diálogo.Para obter detalhes, consulte:Como: abrir páginas de propriedades do projeto.

  2. Clique no C/C++ pasta.

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

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

Para definir essa opção de compilador programaticamente

Consulte também

Referência

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

Opções do compilador

Configurando opções de compilador