インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
フレームポインターを省略するか、リーフ関数で保持するかを指定します。
Linux* および macOS*: | -momit-leaf-frame-pointer -mno-omit-leaf-frame-pointer |
Windows*: | なし |
なし
それぞれ異なる |
-fomit-frame-pointer オプションを指定すると (またはこのオプションがデフォルトで設定されると)、-momit-leaf-frame-pointer がデフォルトになります。-fno-omit-frame-pointer オプションを設定すると、-mno-omit-leaf-frame-pointer がデフォルトになります。 |
このオプションは、フレームポインターを省略するか、リーフ関数で保持するかを指定します。-f[no-]omit-frame-pointer オプションと関連があり、その設定の影響を受けます。
次のオプションの組み合わせについて考えてみます。
オプションの組み合わせ |
結果 |
---|---|
-fomit-frame-pointer -momit-leaf-frame-pointer または -fomit-frame-pointer -mno-omit-leaf-frame-pointer |
どちらも -fomit-frame-pointer を指定するのと同じです。フレームポインターは、すべてのルーチンで省略されます。 |
-fno-omit-frame-pointer -momit-leaf-frame-pointer |
フレームポインターは、リーフ関数では省略されますが、ほかのルーチンでは保持されます。 これは、-momit-leaf-frame-pointer の意図される効果です。 |
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer |
-fno-omit-frame-pointer はすべてのルーチンでフレームポインターを保持するため、-mno-omit-leaf-frame-pointer は無視されます。 この組み合わせは、-fno-omit-frame-pointer を指定するのと同じです。 |
このオプションは、gcc との互換性のために提供されています。
Visual Studio*: なし
Eclipse*: [Optimization (最適化)] > [Omit frame pointer for leaf routines (リーフルーチンのフレームポインターを省略する)]
Xcode*: [Optimization (最適化)] > [Provide Frame Pointer For Leaf Routines (リーフルーチンのフレームポインターを提供する)]
なし