/Oy (omissão do ponteiro de quadro)
Inibe a criação de ponteiros de quadros na pilha de chamadas.
/Oy[-]
Comentários
Essa opção acelera chamadas de função, porque nenhum ponteiro de quadro precisa ser configurado e removido. Também libera mais um registro, (EBP no Intel 386 ou posterior) para armazenar variáveis e subexpressões usadas frequentemente.
/Oy permite a omissão de ponteiro de quadro e /Oy- desabilita a omissão. /Oy está disponível somente em compiladores x86.
Se seu código exigir tratamento baseado em EBP, você poderá especificar a opção /Oy– após a opção /Ox ou usar optimize com os argumentos “y” e off para obter a máxima otimização com tratamento baseado em EBP. O compilador detecta a maioria das situações em que o tratamento baseado em EBP é necessário (por exemplo, com as funções _alloca e setjmp e o tratamento estruturado de exceções).
As opções /Ox (otimização total) e /O1, /O2 (minimizar tamanho, maximizar velocidade) implicam /Oy. Especificar /Oy– depois da opção /Ox, /O1 ou /Oy desabilita /O2, seja explícita ou implícita.
A opção de compilador /Oy torna o uso do depurador mais difícil porque o compilador suprime as informações do ponteiro de quadro. Se você especificar uma opção de compilador de depuração (/Z7, /Zi, /ZI), é recomendável especificar a opção /Oy- depois das outras opções de compilador de otimização.
Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, consulte Como abrir páginas de propriedade do projeto.
Clique na pasta C/C++.
Clique na página de propriedades de Otimização.
Modifique a propriedade de Omite Ponteiros de Quadros. Essa propriedade adiciona ou remove somente a opção /Oy. Se você quiser adicionar a opção /Oy-, clique em Linha de Comando e modifique Opções adicionais.
Para definir essa opção do compilador via programação
- Consulte OmitFramePointers.