コンパイラーには、指定したマイクロプロセッサーまたはアーキテクチャー・ファミリーで、最適に実行されるコードを生成するように指示することができます。該当するターゲット・マシン用オプションを選択することで、可能な限り広範囲にわたるターゲット・プロセッサーや、指定したプロセッサー・アーキテクチャー・ファミリー内の一定範囲のプロセッサー、あるいは特定のプロセッサーをそれぞれ選択できるように、最適化することができます。次の表は、ターゲット・マシンの個々の特徴に影響を与える最適化オプションのリストです。事前定義の最適化レベルを使用すると、それぞれのオプションに対するデフォルト値が設定されます。
オプション | 振る舞い |
---|---|
-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=auto オプションを使用して、コンパイルするマシンの特定のアーキテクチャーを自動的に検出し、そのマシンのみ (またはそれと同等のプロセッサー・アーキテクチャーをサポートするシステム) を対象とした命令を利用するコードを生成することができます。そうでない場合は、-qarch を使用して、コードを十分に実行できる最小限のマシン・ファミリーを指定してください。
-qarch を使用して特定のアーキテクチャーを指定すると、 -qtune は、自動的に、そのアーキテクチャーで最高のパフォーマンスを出す命令シーケンスを生成するサブオプションを選択します。 -qarch を使用してアーキテクチャーのグループ を指定する場合は、 -qtune=auto でコンパイルすると、指定したグループ内のすべてのアーキテクチャーで実行されるコードが生成されますが、命令シーケンスは、コンパイルするマシンのアーキテクチャーで最高のパフォーマンスを出すようになっています。
コンパイラーが最高のパフォーマンスを目指し、なおかつ、 -qarch オプションで指定したすべてのアーキテクチャー上に作成されたオブジェクト・ファイルを実行できるような特定のアーキテクチャーを指定するには、-qtune を試してみてください。 -qarch と -qtune の有効な組み合わせについては、「XL C/C++ コンパイラー・リファレンス」の、 『コンパイラー・モードおよびプロセッサーのアーキテクチャーの有効な組み合わせ』を参照してください。
-qcache オプションを使用する前に、まず -qlistopt オプションを使用して現行設定のリストを生成し、それで問題ないかどうかを確認します。独自に -qcache サブオプションを使用することに決めた場合は、-qhot または -qsmp をそのサブオプションと併用します。サブオプションの完全セット、オプション構文、および使用のためのガイドラインについては、「XL C/C++ コンパイラー・リファレンス」の -qcache を参照してください。