EBP を最適化で汎用レジスターとして使用するかどうかを指定します。
Windows: [C/C++] > [Optimization (最適化)] > [Omit Frame Pointers (フレームポインターなし)]
Linux: [Optimization (最適化)] > [Provide Frame Pointers (フレームポインターあり)]
Mac OS: [Optimization (最適化)] > [Provide Frame Pointers (フレームポインターあり)]
-fp: IA-32、インテル(R) EM64T
/Oy[-]: IA-32
Linux* および Mac OS*: | -fp |
Windows*: | /Oy /Oy- |
なし
Linux および Mac
OS: オフ Windows: オン |
Windows システムでは、EBP を最適化で汎用レジスターとして使用します。Linux および Mac OS システムでは、EBP を最適化で汎用レジスターとして使用しません。 |
-fp オプションは、/Oy オプションとは逆に、EBP レジスターを最適化で汎用レジスターとして使用しないようにします。
一部のデバッガーは、EBP をスタック・フレーム・ポインターとして使用するため、必要な操作をしない限りスタック・バックトレースを生成できません。-fp および /Oy- オプションは、EBP レジスターを最適化で使用しないようにして、EBP レジスターをすべての関数のスタック・フレーム・ポインターとして使用するコードを生成するようにコンパイラーに指示します。これにより、デバッガーは、次の操作を行うことなく、スタック・バックフレームをそのまま生成できます。
-fp: -O0 の最適化をオフにする
/Oy-: /O1、/O2、または /O3 の最適化をオフにする
-fp オプションは、-O0 オプションを指定すると設定されます。IA-32 システムおよびインテル(R) エクステンデッド・メモリー 64 テクノロジー (インテル(R) EM64T) 対応システムでは、-g オプションを指定した場合にも設定されます。-O1、-O2、または -O3 オプションを指定すると、-fp はオフになります。
/Oy オプションは、/O1、/O2、または /O3 オプションを指定すると設定されます。/Od オプションを指定すると、/Oy はオフになります。
-fp または /Oy オプションを使用すると、利用可能な汎用レジスターが 1 つ減るため、生成するコードの効率が少し低下する場合があります。
Linux および Mac OS: -fno-omit-frame-pointer
Windows: なし