プログラムを実行するインテル® プロセッサー専用の最適化コードを生成するようにコンパイラーに指示します。
Windows: [Optimization (最適化)] > [Use Intel(R) Processor Extensions (指定された命令セットの専用コード生成)]
Linux: [Optimization (最適化)] > [Use Intel(R) Processor Extensions (指定された命令セットの専用コード生成)]
Mac OS X: [Optimization (最適化)] > [Use Intel(R) Processor Extensions (指定された命令セットの専用コード生成)]
IA-32 アーキテクチャーおよびインテル® 64 アーキテクチャー
Linux および Mac OS X: |
-xprocessor |
Windows: |
/Qxprocessor |
processor |
専用コードを生成する対象のプロセッサーです。次の説明の多くは、インテル® ストリーミング SIMD 拡張命令 (インテル® SSE) および SSE 補足命令 (インテル® SSSE) についてです。設定可能な値は以下のとおりです。
|
Windows システム: なし |
Windows システムでは、/Qx と /arch のどちらも指定されない場合、 デフォルトは /arch:SSE2 です。 Linux システムでは、-x と -m のどちらも指定されていない場合、 デフォルトは -msse2 です。 |
このオプションは、プログラムを実行するインテル® プロセッサー専用の最適化コードを生成するようにコンパイラーに指示します。また、インテル® プロセッサー固有の最適化に加えて新しい最適化を有効にします。生成されるプロセッサー専用コードは、インテル以外のプロセッサーでは実行できないことがあります。
このオプションは、指定される引数に基づいて最適化を有効にします。例えば、インテル® ストリーミング SIMD 拡張命令 4 (インテル® SSE4)、インテル® ストリーミング SIMD 拡張命令 3 補足命令 (インテル® SSSE3)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、またはインテル® ストリーミング SIMD 拡張命令 (インテル® SSE) を有効にします。
生成されるバイナリーは、対象プロセッサーのすべての機能をサポートしているインテル® プロセッサーで実行できます。例えば、SSE3 を使用して生成されるバイナリーは、SSE3 の対象であるインテル® Pentium® 4 プロセッサーのすべての機能を完全にサポートしているインテル® Core™2 Duo プロセッサーでも実行できます。SSE3 を使用すると、インテル® Core™2 Duo プロセッサーで利用可能な機能や最適化をより多く活用することができます。
processor 値を使用して、対象プロセッサーと互換性のないプロセッサーで実行するバイナリーを作成しないでください。不正な命令例外によりプログラムが異常終了したり、その他の予期しない動作が発生することがあります。例えば、SSE3 を使用して生成されるバイナリーは、インテル® Pentium® III プロセッサーまたは SSE3 命令をサポートしていないそれ以前のプロセッサーでは実行できません。
processor 値のいずれかを使用してコンパイルされた main() 関数 は、サポートされていないプロセッサー上で実行するとランタイムエラーが発生します。詳細は、「アプリケーションの最適化」を参照してください。
複数の processor 値を指定すると、指定されたプロセッサーの中で最もパフォーマンスの高いプロセッサー向けにコードが生成されます。processor 値のパフォーマンスの順番は、高いものから順に、SSE4.2、SSE4.1、SSSE3, SSE3、SSE2. です。processor 値の AVX と SSE3_ATOM は、これには含まれないことに注意してください。
コンパイラー・オプション m と arch を使用して生成されるバイナリーは、対象となるインテル® プロセッサーと同じ機能を実装したインテル以外のプロセッサーでも動作します。
以前の値 O は古いオプションで、-msse3 オプション (Linux および Mac OS X)、/arch:SSE3 オプション (Windows) に置き換わりました。
以前の値である W および K は古いオプションです。新しいオプションについては、次のとおりです。
Mac OS X システム: W または K の完全な後継オプションはありません。デフォルトオプション -msse3 (IA-32 アーキテクチャー) または -mssse3 (インテル® 64 アーキテクチャー) にアップグレードすることができます。
Windows および Linux システム: W の後継オプションは -msse2 (Linux)、/arch:SSE2 (Windows) です。K の完全な後継オプションはありません。しかし、Windows システムで /QxK は /arch:IA32 と解釈され、Linux では -xK は -mia32 と解釈されます。または、次のいずれかを行います。
-msse2 (Linux) オプション、/arch:SSE2 (Windows) オプションにアップグレードします。これは、インテル® SSE2 専用のコードを 1 つ生成します。以前のプロセッサーでは動作しないコードです。
-mia32 -axSSE2 (Linux)、/arch:IA32 /QaxSSE2 (Windows) のように 2 つのオプションを組み合わせて指定します。IA-32 アーキテクチャー・ベース用とインテル® SSE2 用のこの組み合わせで、あらゆるプロセッサーで実行可能なファイルが生成されます。
-x オプションと /Qx オプションは、-m、/arch ではされない追加の最適化を有効にします。
Windows システムでは、/Qx オプション と /arch オプションは互いに排他的であり、同時に両方を指定することはできません。 両方を指定すると、コンパイラーは後に指定されたオプションを使用し、警告を発行します。 同様に、Linux および Mac OS X システムでは、-x オプション と -m オプション は互いに排他的であり、同時に両方を指定することはできません。 両方を指定すると、コンパイラーは後に指定されたオプションを使用し、警告を発行します。
なし