Compartilhar via


/Og (otimizações globais)

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

/Og

Comentários

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

  • Eliminação comuns local e global da subexpressão

    Nessa otimização, o valor de uma subexpressão comum é calculada uma vez. No exemplo, se os valores de b e de c não são alterados entre as três expressões, o compilador pode atribuir o cálculo de b + c a uma variável temporário, e substituir a variável para b + c:

    a = b + c;
    d = b + c;
    e = b + c;
    

    Para otimização comuns local da subexpressão, o compilador examina seções abreviados de código para subexpressões comuns. Para otimização (global da subexpressão, o compilador pesquisa funções inteiras por subexpressões comuns.

  • Alocação de registro automático

    Essa otimização permite que o compilador armazena variáveis e subexpressões frequentemente usados nos registros; a palavra-chave de register é ignorado.

  • Otimização de loop

    Essa otimização remove as subexpressões invariável do corpo de um loop. Um loop ótimo contém apenas as expressões cujos valores são alterados em cada execução do loop. No exemplo a seguir, a expressão x + y não é alterado no corpo de loop:

    i = -100;
    while( i < 0 ) {
        i += x + y;
    }
    

    Depois da otimização, x + y é calculada uma vez em vez de toda vez que o loop é executado:

    i = -100;
    t = x + y;
    while( i < 0 ) {
        i += t;
    }
    

    A otimização de loop é muito mais efetivo quando o compilador não pode considerar nenhuma alias, que é definido com __restrict, noalias, ou restrinja.

    Dica

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

/Og também permite que a otimização nomeada do valor de retorno, o que elimina o construtor de cópia e o destruidor de um valor de retorno baseado pilha. Consulte /O1, /O2 (minimizar tamanho, maximizar velocidade) para maiores informações.

Para obter informações relacionadas, consulte Gerencia as funções intrínsecas (/Oi) e Otimização completa (/Ox).

/Og é substituído; use /O1 ou /O2. Para obter mais informações, consulte Deprecated Compiler Options.

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

  1. Abra a caixa de diálogo Páginas de Propriedade do projeto. Para obter detalhes, consulte Como abrir páginas de propriedade do projeto.

  2. Clique na pasta C/C++.

  3. Clique na página de propriedades de Linha de Comando.

  4. Digite a opção de compilador na caixa Opções Adicionais.

Para definir essa opção do compilador via programação

Consulte também

Referência

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

Opções do compilador

Definindo opções do compilador