Development Reference Guides

Contents

fomit-frame-pointer
, Oy

Determines whether EBP is used as a general-purpose register in optimizations.
Architecture Restrictions
Option
/Oy[-]
is only available on IA-32 architecture. IA-32 architecture is only supported for C++.

Syntax

Linux:
-fomit-frame-pointer
-fno-omit-frame-pointer
Windows:
/Oy
(C++ only)
/Oy-
(C++ only)
Arguments
None
Default
-fomit-frame-pointer
C++: or
/Oy
EBP is used as a general-purpose register in optimizations.
However, the default can change depending on the following:
Linux
If option
-O0
or
-g
is specified, the default is
-fno-omit-frame-pointer
.
Windows
C++: If option
/Od
is specified, the default is
/Oy-
.
Description
These options determine whether EBP is used as a general-purpose register in optimizations. Option
-fomit-frame-pointer
and option
/Oy
allows this use. Option
-fno-omit-frame-pointer
and option
/Oy-
disallows 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 the
/Oy-
option directs 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
  • This content does not apply to SYCL.
    C++: 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
.
For C++, 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.
Linux
There is currently an issue with GCC 3.2 exception handling. Therefore, the compiler ignores this option when GCC 3.2 is installed for C++ and exception handling is turned on (the default).
IDE Equivalent
Visual Studio:
Optimization > Omit Frame Pointers
Eclipse:
Optimization > Provide Frame Pointer
Alternate Options
Linux:
-fp
(this is a deprecated option)
Windows: None

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.