Intel® Fortran Compiler 17.0 Developer Guide and Reference

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

Syntax

Linux and macOS:

-fomit-frame-pointer

-fno-omit-frame-pointer

Windows:

/Oy

/Oy-

Arguments

None

Default

-fomit-frame-pointer
or /Oy

EBP is used as a general-purpose register in optimizations. However, on Linux* and 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:

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.

IDE Equivalent

Visual Studio: Optimization > Omit Frame Pointers

Eclipse: None

Xcode: Optimization > Provide Frame Pointer

Alternate Options

Linux and OS X: -fp (this is a deprecated option)

Windows: None

See Also