システム・アーキテクチャーの最適化

コンパイラーには、指定したマイクロプロセッサーまたはアーキテクチャー・ファミリーで、最適に実行されるコードを生成するように指示することができます。該当するターゲット・マシン用オプションを選択することで、可能な限り広範囲にわたるターゲット・プロセッサーや、指定したプロセッサー・アーキテクチャー・ファミリー内の一定範囲のプロセッサー、あるいは特定のプロセッサーをそれぞれ選択できるように、最適化することができます。次の表は、ターゲット・マシンの個々の特徴に影響を与える最適化オプションのリストです。事前定義の最適化レベルを使用すると、それぞれのオプションに対するデフォルト値が設定されます。

表 9. ターゲット・マシンのオプション

オプション 振る舞い
-q32 32 ビット (4/4/4) アドレッシング・モデル用のコードを生成します (32 ビット実行モード)。これがデフォルトの設定値です。
-q64 64 ビット (4/8/8) アドレッシング・モデル用のコードを生成します (64 ビット実行モード)。
-qarch 命令コードを生成するプロセッサー・アーキテクチャー・ファミリーを選択します。このオプションによって、 PowerPC(R) アーキテクチャー向け命令のサブセットに対して生成される命令セットが制限されます。 Y-HPC を除くすべての Linux プラットフォームで、デフォルトは -qarch=ppc64grsq です。Y-HPC でのデフォルトは -qarch=ppc970 です。 -O4 または -O5 を使用すると、デフォルトが -qarch=auto に設定されます。
-qtune 指定したマイクロプロセッサー上で実行するように、最適化にバイアスをかけます。この際、ターゲットとして使用する命令セット・アーキテクチャーにはまったく影響は及びません。デフォルトは -qtune=pwr4 です。
-qcache 特定のキャッシュまたはメモリー形状を定義します。デフォルトは、 -qtune の設定によって決まります。
-qenablevmx コンパイラーに対し、任意のコンパイラー・フェーズで VMX (AltiVec) コードを生成するよう指示します。 SUSE 9、Y-HPC、および Red Hat 4 Linux では、このオプションはデフォルトで使用可能になっています。 Red Hat 3 Linux では、デフォルトは -qnoenablevmx です。

ハードウェア関連の有効なサブオプションおよびサブオプションの組み合わせの完全なリストについては、「XL C/C++ コンパイラー・リファレンス」の、『アーキテクチャー固有の、 32 ビットまたは 64 ビットのコンパイルでコンパイラー・オプションを指定する』、および 『コンパイラー・モードおよびプロセッサーのアーキテクチャーの有効な組み合わせ』を参照してください。

ターゲット・マシンのオプションの最大活用

-qarch オプションの使用

アプリケーションのコンパイルと実行を同じマシン上で行う場合は、 -qarch=auto オプションを使用して、コンパイルするマシンの特定のアーキテクチャーを自動的に検出し、そのマシンのみ (またはそれと同等のプロセッサー・アーキテクチャーをサポートするシステム) を対象とした命令を利用するコードを生成することができます。そうでない場合は、-qarch を使用して、コードを十分に実行できる最小限のマシン・ファミリーを指定してください。

-qtune オプションの使用

-qarch を使用して特定のアーキテクチャーを指定すると、 -qtune は、自動的に、そのアーキテクチャーで最高のパフォーマンスを出す命令シーケンスを生成するサブオプションを選択します。 -qarch を使用してアーキテクチャーのグループ を指定する場合は、 -qtune=auto でコンパイルすると、指定したグループ内のすべてのアーキテクチャーで実行されるコードが生成されますが、命令シーケンスは、コンパイルするマシンのアーキテクチャーで最高のパフォーマンスを出すようになっています。

コンパイラーが最高のパフォーマンスを目指し、なおかつ、 -qarch オプションで指定したすべてのアーキテクチャー上に作成されたオブジェクト・ファイルを実行できるような特定のアーキテクチャーを指定するには、-qtune を試してみてください。 -qarch-qtune の有効な組み合わせについては、「XL C/C++ コンパイラー・リファレンス」の、 『コンパイラー・モードおよびプロセッサーのアーキテクチャーの有効な組み合わせ』を参照してください。

-qcache オプションの使用

-qcache オプションを使用する前に、まず -qlistopt オプションを使用して現行設定のリストを生成し、それで問題ないかどうかを確認します。独自に -qcache サブオプションを使用することに決めた場合は、-qhot または -qsmp をそのサブオプションと併用します。サブオプションの完全セット、オプション構文、および使用のためのガイドラインについては、「XL C/C++ コンパイラー・リファレンス」の -qcache を参照してください。 IBM Copyright 2003