/Oy (подавление указателей фрейма)
Подавляет создание указателей фрейма в стеке вызовов.
/Oy[-]
Заметки
Этот параметр повышает скорость вызова функций, поскольку при этом не требуется создавать и удалять указатели фрейма. Также для хранения часто используемых переменных и подвыражений высвобождается один регистр (EBP на процессорах Intel 386 или более поздних версиях).
Параметр /Oy включает подавление указателей фрейма, а параметр /Oy- его отключает.Параметр /Oy доступен только в компиляторах с целевой архитектурой x86.
Если для кода нужна адресация с базой по регистру EBP, можно указать параметр /Oy– после параметра /Ox или использовать аргумент optimize вместе с аргументами "y" и off, чтобы добиться максимальной оптимизации при адресации с базой по регистру EBP. Компилятор выявляет большинство ситуаций, в которых требуется адресация с базой по регистру EBP (например, с функциями _alloca и setjmp или при обработке структурированных исключений).
Параметры /Ox (полная оптимизация) и /O1, /O2 (минимизировать размер, максимизировать скорость) подразумевают /Oy. Использование параметра /Oy– после параметра /Ox, /O1 или /O2 отменяет явно или неявно заданный параметр /Oy.
Параметр компилятора /Oy затрудняет использование отладчика, поскольку компилятор подавляет информацию об указателях фрейма. Если используется отладочный параметр компилятора (/Z7, /Zi, /ZI), то после любых отладочных параметров компилятора рекомендуется указать параметр /Oy-.
Установка параметра компилятора в среде разработки Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.
Откроите папку C/C++.
Перейдите на страницу свойств Оптимизация.
Измените свойство Подавление указателей фрейма. Это свойство добавляет или удаляет исключительно параметр /Oy. Если необходимо добавить параметр /Oy- щелкните страницу свойств Командная строка и измените свойство Дополнительные параметры.
Установка этого параметра компилятора программным способом
- См. раздел OmitFramePointers.