インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
関数分割を有効にします。
インテル® グラフィックス・テクノロジーをターゲットとするインテル® 64 アーキテクチャー、または IA-32 アーキテクチャーで実行するインテル® グラフィックス・テクノロジーをターゲットとする場合は利用できません。
Linux*: | -fnsplit[=n] -no-fnsplit |
macOS*: | なし |
Windows*: | /Qfnsplit[:n] /Qfnsplit- |
n |
関数分割のしきい値を示すオプションで、正の整数を指定します。 ブロックが分岐する確率が n 未満の条件付き分岐からのみ到達できる場合、異なるコードセグメントに配置することができます。分岐の確率は、ヒューリスティックを基にコンパイラーによって計算され、アセンブリー・リストで確認できます。 n の範囲は 0 <= n <= 100 です。 |
オフ |
関数分割を有効にしません。ただし、関数のグループ化は有効です。 |
このオプションは、関数分割を有効にします。n を指定しないで [Q]fnsplit のみを使用する場合、[Q]prof-use オプションも一緒に指定する必要があります。そうでない場合、オプションは効果がなく、関数分割が行われません。
n を指定すると、関数分割が有効になります。この場合、[Q]prof-use オプションを指定する必要はありません。
[Q]prof-use を使用する場合に関数分割を無効にするには、/Qfnsplit- (Windows*) または -no-fnsplit (Linux*) を指定します。
関数分割は、通常、呼び出されるルーチンのスタックで C/C++ ルーチンに対する例外処理が有効な場合はサポートされません。-fexceptions (Linux*) および C/C++ オプションの /EH (Windows*) も参照してください。
Visual Studio*: [Code Generation (コード生成)] > [Disable Function Splittin (関数分割を無効にする)]
Eclipse*: なし
Xcode*: なし
Linux*: -freorder-blocks-and-partition (gcc オプション)
Windows*: なし