IBM XL C/C++ コンパイラー・オプションを使用して、特定のプロセッサー・アーキテクチャーで使用するためにコンパイラー出力を最適化することができます。32 ビットまたは 64 ビットのいずれかのモードでコンパイルするようにコンパイラーに指示することもできます。
コンパイラーは、コンパイラー・モードを判別する最後に検出された有効なコンパイラー・オプションによって、以下の順でコンパイラー・オプションを評価します。
- 内部のデフォルト (32 ビット・モード)
- 構成ファイルの設定
- コマンド行コンパイラー・オプション (-q32、-q64、-qarch、-qtune)
- ソース・ファイルのステートメント (#pragma options tune=suboption)
コンパイラーが実際に使用するコンパイル・モードは、
-q32、-q64、-qarch、および -qtune コンパイラー・オプションの設定値の組み合わせに応じて、以下の条件に従って決定されます。
- コンパイラー・モード は、
-q32 または -q64 コンパイラー・オプションの最後に検出されたインスタンスに応じて設定されます。
- アーキテクチャー・ターゲット は、指定された -qarch の設定値がコンパイラー・モード の設定値と互換性がある場合は、
-qarch コンパイラー・オプションの最後に検出されたインスタンスに応じて設定されます。
-qarch オプションを設定しない場合は、コンパイラーは -qarch の設定値が ppc64grsq であると見なします。
- アーキテクチャー・ターゲットの調整は、
-qtune の設定値がアーキテクチャー・ターゲット およびコンパイラー・モード の設定値と互換性がある場合は、
-qtune コンパイラー・オプションの最後に検出されたインスタンスに応じて設定されます。
-qtune オプションを設定しない場合は、コンパイラーは、使用中の -qarch の設定値に応じてデフォルトの -qtune の設定値であると見なします。
-qarch を指定しない場合は、コンパイラーは -qtune 設定値が pwr4 であると見なします。
以下では、可能性のあるオプションの矛盾およびこれらの矛盾のコンパイラーによる解決について説明します。
- -q32 または -q64 の設定値が、ユーザーが選択した -qarch オプションと互換性がない。
解決: -q32 または -q64 の設定値が -qarch オプションをオーバーライドします。コンパイラーは警告メッセージを出し、-qarch をそのデフォルト設定値に設定して、-qtune オプションをそのデフォルト値に応じて設定します。
- -q32 または -q64 の設定値が、ユーザーが選択した -qtune オプションと互換性がない。
解決: -q32 または -q64 の設定値が -qtune オプションをオーバーライドします。コンパイラーは警告メッセージを出し、-qtune オプションを -qarch の設定値に対するデフォルトの -qtune 値に設定します。
- -qarch オプションが、ユーザーが選択した -qtune オプションと互換性がない。
解決: コンパイラーは警告メッセージを出し、-qtune を -qarch の設定値に対するデフォルトの -qtune 値に設定します。
- 選択した -qarch または -qtune オプションがコンパイラーに認識されない。
解決: コンパイラーは警告メッセージを出し、
-qarch および -qtune をデフォルトの設定値に設定します。コンパイラー・モード (32 ビットまたは 64 ビット) は、-q32 または -q64 コンパイラー設定によって判別されます。
コンパイラー・オプション
コンパイラーの起動
コマンド行におけるコンパイラー・オプションの指定
コンパイラーのコマンド行オプション
矛盾するコンパイラー・オプションの解決
