以下のオプションは、最適化の特定の局面を制御する際に使用できます。これらのオプションは、グループとして使用可能にされることもよくあり、また、もっと汎用的な最適化オプションまたはレベルを使用可能にすると、デフォルト値を与えられることもあります。詳しくは、「XL C/C++ コンパイラー・リファレンス」に記載の各オプションの見出しを参照してください。
表 13. パフォーマンスの最適化のために選択されるコンパイラー・オプション
オプション | 説明 |
---|---|
-qcompact | コード・サイズの肥大につながる最適化 (ループのアンロール、関数のインライン化など) を抑制します。 |
-qignerrno | コンパイラーが、 errno はライブラリー関数呼び出しによって変更されないので、そのような呼び出しは最適化できると判断できるようにします。また、ライブラリー関数の呼び出しではなく、インライン・コードの生成によって、平方根演算の最適化を行うことも可能になります。 |
-qsmallstack | コンパイラーに、スタック・ストレージを圧縮するように指示します。そうすることにより、ヒープの使用量が増大する場合があります。 |
-qinline | 名前付き関数のインライン化を制御します。コンパイル時、リンク時、またはその両方で使用できます。 -qipa の使用時には、 -qinline と -qipa=inline は同義です。 |
-qunroll | ループのアンロールを独自に制御します。-O3 では、暗黙のうちにアクティブになっています。 |
-qinlglue | リンカーによって生成され、外部関数の呼び出しまたは関数ポインターを介した呼び出しに使用される「グルー・コード」をインライン化するよう、コンパイラーに命令します。 64 ビット・モード専用です。 |
-qtbtable | トレースバック・テーブル情報の生成を制御します。64 ビット・モード専用です。 |
![]() -qnoeh | C++ 例外がスローされないこと、クリーンアップ・コードが省略できることを、コンパイラーに通知します。プログラムが C++ 例外をスローしない場合は、このオプションを使用して、例外処理コードを除去し、プログラムを圧縮してください。 |
-qnounwind | このコンパイル内のルーチンがアクティブである間はスタックがアンワインドされないことを、コンパイラーに通知します。このオプションを選択すると、不揮発性レジスターの保管と復元の最適化を改善できます。C++ では、 -qnounwind オプションには -qnoeh オプションが暗黙指定されます。 |