構文:
/architecture:keyword
/architecture (/arch) オプションは,このプログラム単位に対して生成されるプロセッサー特有の命令形式を決定します。/arch:keyword オプションは /tune:keyword オプションと同じキーワードを使用します。
特定のアーキテクチャー形式 (ia32) の全プロセッサーは,命令の核となる組を実装しています。一部の (最近の) プロセッサーには,さらに命令拡張が追加されています。
/tune:keyword オプションは,主に命令のスケジューリングを目的とする高度な最適化のために使用されますが,/arch:keyword オプションは,コンパイルされるプログラム単位に対して生成される機械語コード命令形式を決定します。
ビジュアル開発環境では,「Fortran」タブの「Code Generation」カテゴリの「Generate Code For」を指定します。
ia32 (Intel と AMD) システムでは,次の /arch キーワードがサポートされています。
使用しているアーキテクチャー形式のプロセッサーに適したコード (混在した (blended) コードと呼ばれることがあります) を生成します。これは基本設定です。ia32 システムで「generic」キーワードでコンパイルされたプログラムは,すべての ia32 システムで動作します。
コンパイルに使用しているシステム・プロセッサーに適したコードを生成します。プログラムをビルドする親システムによっては,プログラムが他の ia32 システムで動作する場合としない場合があります。
Intel Pentium プロセッサー・システムでは,pn1 キーワードを選択したのと同じになります。
Intel Pentium Pro,Intel Pentium II,または AMD K6 プロセッサー・システムでは,pn2 キーワードを選択したのと同じになります。
Intel Pentium III プロセッサー・システムでは,pn3 キーワードを選択したのと同じになります。
AMD K6_2 または AMD K6_III プロセッサー・システムでは,k6_2 キーワードを選択したのと同じになります。
AMD Athlon プロセッサー・システムでは,k7 キーワードを選択したのと同じになります。
Intel Pentium 4 プロセッサー・システムでは,pn4 キーワードを選択したのと同じになります。
/arch:pn1
Pentium プロセッサー・システム用のコードを生成します。pn1 キーワードでコンパイルされたプログラムは,Pentium,Pentium Pro,Pentium II,Pentium III,AMD K6,および上位のプロセッサーで正しく動作しますが,486 プロセッサーでは実行できません。pn1 キーワードは,p5 キーワードを置き換えます (/arch:pn1 と /arch:p5 は等価です)。
/arch:pn2
Pentium Pro,Pentium II,および AMD K6 プロセッサー・システム用のコードを生成します。pn2 キーワードでコンパイルされたプログラムは,Pentium Pro,Pentium II,Pentium III,AMD K6,および上位のプロセッサーで正しく動作しますが,486 または Pentium プロセッサーでは実行できません。pn2 キーワードは,p6 キーワードを置き換えます (/arch:pn2 と /arch:p6 は等価です)。
/arch:k6
AMD K6 (Pentium II システムと同じ) プロセッサー・システム用のコードを生成します。k6 キーワードでコンパイルされたプログラムは,Pentium Pro,Pentium II,Pentium III,AMD K6,および上位のプロセッサーで正しく動作しますが,486 または Pentium プロセッサーでは実行できません。
/arch:pn3
Pentium III,AMD K6_2 および AMD K6_III プロセッサー・システム用のコードを生成します。pn3 キーワードでコンパイルされたプログラムは,Pentium III,AMD K6_2,AMD K6_III,Pentium 4 および上位のプロセッサーで正しく動作しますが,486,Pentium,Pentium Pro,Pentium II または AMD K6 プロセッサーでは実行できません。pn3 キーワードは,p6p キーワードを置き換えます (/arch:pn3 と /arch:p6p は等価です)。
/arch:k6_2
AMD K6_2 および AMD K6_III プロセッサー・システム用のコードを生成します。k6_2 キーワードでコンパイルされたプログラムは,AMD K6_2,AMD K6_III および AMD Athron で正しく動作しますが,486,Pentium,Pentium Pro,Pentium II,AMD K6,Pentium III または Pentium 4 プロセッサーでは実行できません。
/arch:k7
AMD Athlon プロセッサー・システム用のコードを生成します。k7 キーワードでコンパイルされたプログラムは,AMD Athron で正しく動作しますが,486,Pentium,Pentium Pro,Pentium II,AMD K6,Pentium III,Pentium 4,AMD K6_2 または AMD K6_III プロセッサーでは実行できません。
/arch:pn4
Pentium 4 プロセッサー・システム用のコードを生成します。pn4 キーワードでコンパイルされたプログラムは,Pentium 4 プロセッサーで正しく動作しますが,486,Pentium,Pentium Pro,Pentium II,AMD K6,Pentium III,AMD K6_2,AMD K6_III または AMD Athlon プロセッサーでは実行できません。
命令レベルで上記に記載されているプロセッサーと互換性がある他のプロセッサー (上記に示されていない) は,互換性のあるプロセッサーと同じ結果が得られるはずです。
ia64 (64 ビット) システムに対しては,/arch:generic または /arch:host を指定します。
以下の表は,ia32 用 /arch:keywords とこれらのキーワードを使用するプログラムが使用できるシステムの関係を示しています。
キーワード | AMD K6 |
AMD K6_2 |
AMD K6_III |
AMD Athlon |
Intel 486 |
Intel Pentium |
Intel Pentium Pro Pentium II |
Intel Pentium III | Intel Pentium 4 |
---|---|---|---|---|---|---|---|---|---|
generic | * | * | * | * | X | * | * | * | * |
pn1 | * | * | * | * | X | * | * | * | |
pn2 | * | * | * | * | X | * | * | ||
pn3 | * | * | * | X | * | ||||
pn4 | X | ||||||||
k6 | X | * | * | * | * | * | * | ||
k6_2 | X | X | * | ||||||
k7 | X | ||||||||
凡例: | * は,キーワードとプロセッサーの組み合わせをサポートしていることを示しています。 | ||||||||
X は,キーワードとプロセッサーの組み合わせで最良のものを示しています。 | |||||||||
/fast を指定すると,/arch:host を設定します。
関連情報
プログラム実行のタイミングについての詳細は,「プログラム性能の解析」を参照してください。
様々なキーワードで使用される命令の型についての詳細は,「特定のプロセッサー用コード生成の要求」を参照してください。