/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.