http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/lin/compiler_c/copts/common_options/option_fp_lcase.htm
fomit-frame-pointer, Oy
Determines whether EBP is used as a general-purpose register in optimizations.
IDE Equivalent
Windows: Optimization > Omit Frame Pointers
Linux: Optimization > Provide Frame Pointer
Mac OS X: Optimization > Provide Frame Pointer
Architectures
-f[no-]omit-frame-pointer: IA-32 architecture, Intel® 64 architecture
/Oy[-]: IA-32 architecture
Syntax
| Linux and Mac OS X: | -fomit-frame-pointer -fno-omit-frame-pointer |
| Windows: | /Oy /Oy- |
Arguments
None
Default
| -fomit-frame-pointer | EBP is used as a general-purpose register in optimizations. However, on Linux* and Mac OS X systems, the default is -fno-omit-frame-pointer if option -O0 or -g is specified. On Windows* systems, the default is /Oy- if option /Od is specified. |
Description
These options determine whether EBP is used as a general-purpose register in optimizations. Options -fomit-frame-pointer and /Oy allow this use. Options -fno-omit-frame-pointer and /Oy- disallow it.
Some debuggers expect EBP to be used as a stack frame pointer, and cannot produce a stack backtrace unless this is so. The -fno-omit-frame-pointer and /Oy- options direct the compiler to generate code that maintains and uses EBP as a stack frame pointer for all functions so that a debugger can still produce a stack backtrace without doing the following:
-
For -fno-omit-frame-pointer: turning off optimizations with -O0
-
For /Oy-: turning off /O1, /O2, or /O3 optimizations
The -fno-omit-frame-pointer option is set when you specify option -O0 or the -g option. The -fomit-frame-pointer option is set when you specify option -O1, -O2, or -O3.
The /Oy option is set when you specify the /O1, /O2, or /O3 option. Option /Oy- is set when you specify the /Od option.
Using the -fno-omit-frame-pointer or /Oy- option reduces the number of available general-purpose registers by 1, and can result in slightly less efficient code.
Note
There is currently an issue with GCC 3.2 exception handling. Therefore, the Intel compiler ignores this option when GCC 3.2 is installed for C++ and exception handling is turned on (the default).
本文详细介绍了Intel编译器中的优化选项,包括如何在不同操作系统上配置这些选项,以及它们对代码执行效率的影响。重点讨论了是否使用EBP作为通用寄存器、是否省略帧指针等选项的设置策略,提供了针对Linux、Windows和MacOS系统的具体指导,帮助开发者根据需求选择最优的编译选项。
1499

被折叠的 条评论
为什么被折叠?



