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