ax、Qax

パフォーマンス上の利点がある場合、複数のプロセッサー固有のコードを生成するようにコンパイラーに指示します。

IDE オプション

Windows: [Optimization (最適化)] > [Use Intel(R) Processor Extensions (インテル(R) プロセッサー拡張コードの使用)]

Linux: [Code Generation (コード生成)] > [Use Intel(R) Processor Extensions (インテル(R) プロセッサー拡張コードの使用)]

Mac OS X: [Optimization (最適化)] > [Use Intel(R) IA-32 Instruction Set Extensions (インテル(R) IA-32 命令セット拡張の使用)]

アーキテクチャー

IA-32 アーキテクチャー、インテル(R) 64 アーキテクチャー

構文

Linux* および Mac OS* X: -axprocessor
Windows*:  /Qaxprocessor

引数

processor 最適化されたコードパスの対象となるプロセッサーまたはマイクロアーキテクチャーを指定するための値です。設定可能な値は以下のとおりです。
  S インテル(R) ストリーミング SIMD 拡張命令 4 (SSE4) のベクトル化コンパイラー命令およびメディア・アクセラレーター命令を使用して、これらの命令セットをサポートする将来のインテル(R) プロセッサー向けに専用のコードパスを生成して、最適化できます。
  T インテル・プロセッサー向けに SSSE3、SSE3、SSE2、および SSE 命令専用のコードパスを生成して、インテル(R) Core(TM)2 Duo プロセッサー・ファミリー向けに最適化します。
  P インテル・プロセッサー向けに SSE3、SSE2、および SSE 命令専用のコードパスを生成して、インテル Core マイクロアーキテクチャーおよび Intel NetBurst(R) マイクロアーキテクチャーをベースとするインテル・プロセッサー向けに最適化します。
  B 古いオプション (非推奨) です。インテル・プロセッサー向けに SSE2 および SSE 命令専用のコードパスを生成して、インテル(R) Pentium(R) M プロセッサー向けに最適化します。
  N インテル・プロセッサー向けに SSE2 および SSE 命令専用のコードパスを生成して、インテル Pentium 4 プロセッサーおよび SSE2 をサポートするインテル(R) Xeon(R) プロセッサー向けに最適化します。
  W インテル・プロセッサー向けに SSE2 および SSE 命令専用のコードパスを生成して、インテル Pentium 4 プロセッサーおよび SSE2 をサポートするインテル Xeon プロセッサー向けに最適化します。
  K インテル・プロセッサー向けに SSE 命令専用のコードパスを生成して、インテル Pentium III プロセッサーおよび SSE2 をサポートするインテル Pentium III Xeon プロセッサー向けに最適化します。

デフォルト

オフ -x オプション (Linux および Mac OS X) または /Qx オプション (Windows) によって制御される場合を除き、プロセッサー専用コードは生成されません。

説明

このオプションは、パフォーマンス上の利点がある場合、プロセッサー固有のコードを複数生成するようにコンパイラーに指示します。また、IA-32 アーキテクチャーの汎用コードパスも生成します。通常は、汎用コードの方が専用コードよりも実行速度は遅くなります。

汎用コードパスは、-x オプション (Linux および Mac OS X) または /Qx オプション (Windows) によって決定されます。-x オプションまたは /Qx オプションのデフォルトは使用しているオペレーティング・システムに依存しますが、デフォルトよりも高度なアーキテクチャーを指定することもできます。指定されるアーキテクチャーは、汎用コードパス向けの最小アーキテクチャーとなります。

-ax-x オプション (Linux および Mac OS X) または /Qax/Qx オプション (Windows) の両方を指定した場合、-x または /Qx オプションで指定されたプロセッサーの種類と互換性のあるプロセッサーでのみ実行できる汎用コードが生成されます。

ベクトライザーを有効にし、指定したインテル・プロセッサーに対して、機能性が向上する関数を個別に生成できる箇所を検出するように、コンパイラーに指示します。

固有の関数バージョンを生成できることが判明した場合、コンパイラーはそれがパフォーマンスの向上につながるかどうかをチェックします。パフォーマンスが向上すると判明した場合、コンパイラーはプロセッサー固有のバージョンと汎用バージョンの関数を生成します。プログラムの実行時に、使用されているインテル・プロセッサーに応じて、この 2 つのバージョンのどちらを実行するかが選択されます。この方法により、プログラムは従来のプロセッサーとの互換性を保ちながら、最新のインテル・プロセッサー上でパフォーマンスを大幅に向上できます。

2 つ以上の processor 値を組み合わせて使用できます。例えば、インテル Core 2 Duo プロセッサーおよび SSE3 をサポートするインテル Pentium 4 プロセッサー向けのコードを生成するには、-axTP (Linux および Mac OS X) または /QaxTP (Windows) を指定します。

IA-64 アーキテクチャー・ベースの Linux および Windows システムでは、processorBN、および K は無効です。

IA-32 アーキテクチャー・ベースの Mac OS X システムでは、processorST、および P のみ有効です。インテル 64 アーキテクチャー・ベースの Mac OS X システムでは、processorS および T のみ有効です。

代替オプション

なし

関連情報

x、Qx コンパイラー・オプション