インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス
生成する命令セットと最適化を含む、ターゲット・プロセッサー機能をコンパイラーに指示します。
インテル® Xeon Phi™ コプロセッサー x100 製品ファミリー (開発コード名 Knights Corner) をターゲットとするインテル® 64 アーキテクチャー、インテル® グラフィックス・テクノロジーをターゲットとする IA-32 アーキテクチャー、またはインテル® グラフィックス・テクノロジーをターゲットとするインテル® 64 アーキテクチャーでは利用できません。
Linux* および OS X*: | -xcode |
Windows®: | /Qxcode |
code |
生成する命令セットと最適化を含む、ターゲット機能セットをコンパイラーに指示します。 次の説明の多くは、インテル® ストリーミング SIMD 拡張命令 (インテル® SSE) および SSE 補足命令 (SSSE) についてです。 設定可能な値は以下のとおりです。
Host を指定することもできます。 詳細は、[Q]xHost オプションを参照してください。 |
Windows® システム: なし |
Windows® システムでは、/Qx と /arch のどちらも指定されない場合、デフォルトは /arch:SSE2 です。 Linux* システムでは、-x と -m のどちらも指定されていない場合、デフォルトは -msse2 です。 |
このオプションは、生成する命令セットと最適化を含む、ターゲット・プロセッサー機能をコンパイラーに指示します。 また、インテルの機能固有の最適化に加えて新しい最適化を有効にします。
生成されるプロセッサー専用コードは、インテル以外のプロセッサーでは実行できないことがあります。
これらの code 値を指定して生成される実行ファイルは、指定された命令セットをサポートしているインテル® プロセッサーでのみ動作します。
これらの code 値を指定して生成されるバイナリーは、指定された機能をサポートしているインテル® プロセッサーで実行できます。
code 値を使用して、対象プロセッサーと互換性のないプロセッサーで実行するバイナリーを作成しないでください。 不正な命令例外によりプログラムが異常終了したり、その他の予期しない動作が発生することがあります。
code 値のいずれかを使用してコンパイルされた main() 関数は、インテル以外のプロセッサーを含むサポートされていないプロセッサー上で実行するとランタイムエラーが発生します。
コンパイラー・オプション m と arch を使用して生成されるバイナリーは、対象となるインテル® プロセッサーと同じ機能を実装したインテル以外のプロセッサーでも動作します。
-x オプションと /Qx オプションは、-m または /arch (または -ax および /Qax) では有効にされない追加の最適化を有効にします。
Windows® システムでは、/Qx オプションと /arch オプションは互いに排他的であり、同時に両方を指定することはできません。 両方指定すると、コンパイラーは後に指定されたオプションを使用し、警告を発行します。 同様に、Linux* および OS X* システムでは、-x オプションと -m オプションは互いに排他的であり、同時に両方を指定することはできません。 両方指定すると、コンパイラーは後に指定されたオプションを使用し、警告を発行します。
SSE2 を除くすべての設定で CPU チェックが行われます。 ただし、-O0 (Linux* および OS X*) または /Od (Windows®) を指定すると、CPU チェックは行われません 。
Visual Studio®: [Code Generation (コード生成)] > [Intel Processor-Specific Optimization (指定された命令セットの専用コード生成)]
Eclipse*: [Code Generation (コード生成)] > [Intel Processor-Specific Optimization (指定された命令セットの専用コード生成)]
Xcode*: [Code Generation (コード生成)] > [Intel Processor-Specific Optimization (指定された命令セットの専用コード生成)]
なし
最適化に関する注意事項 |
---|
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。 注意事項の改訂 #20110804 |