Sun Studio 12: Fortran ユーザーズガイド

3.4.113 -xarch=isa

命令セットアーキテクチャー (ISA) を指定します。

表 3–11 に、-xarch キーワード isa で受け付けられるアーキテクチャーを示します。

表 3–11 -xarch ISA キーワード

プラットフォーム 

有効な -xarch キーワード

SPARC 

genericgeneric64nativenative64sparcsparcvissparcvis2sparcfmafv9v9av9b

x86 

genericnative386pentium_prossesse2amd64pentium_proasseasse2aamd64asse3

-xarch は単独で使用できますが、-xtarget オプションの展開の一部です。 特定の -xtarget オプションで設定されている -xarch の値を上書きするために使用することもできます。次に例を示します。

% f95 -xtarget=ultra2 -xarch=sparcfmaf ...

-xtarget=ultra2 で設定した -xarch が無効になります。

このオプションは、指定の命令セットだけを許すことによって、コンパイラが指定の命令セットアーキテクチャーの命令に対応するコードしか生成できないようにします。なお、ターゲット固有の命令が使用されるとは限りません。

このオプションを最適化で使用する場合は、適切なアーキテクチャーを選択すると、そのアーキテクチャー上での実行パフォーマンスを向上させることができます。不適切な選択を行うと、意図したターゲットプラットフォームでは実行できないバイナリプログラムが生成されます。

次の点に注意してください。

オプションの選択によっては、生成された実行可能プログラムのパフォーマンスが、初期のアーキテクチャーよりかなり劣ることがあります。また、4 倍精度 (REAL*16 および long double) の浮動小数点命令は、これらの命令セットアーキテクチャーの多くで使用できますが、コンパイラは、それらの命令を生成したコードでは、それらの命令を使用しません。

SPARC プラットフォームで -xarch が指定されなかった場合のデフォルトは、SPARC プラットフォームでは sparc、x86 プラットフォームでは 386 です。

表 3–12 に、SPARC プラットフォーム上で使用する各 -xarch キーワードについて詳細に説明します。

表 3–12 SPARC プラットフォーム上の -xarch の値

-xarch=

意味 (SPARC) 

generic

たいていのプロセッサに共通の命令セットを使用したコンパイルを行います。

generic64

たいていの 64 ビットプラットフォーム用のコンパイルを行います。

(Solaris のみ) このオプションは -m64 -xarch=generic と同等で、旧バージョンとの互換を提供します。64 ビットコンパイルを指定する場合は、-xarch=generic64 ではなく -m64 を使用します。

native

このシステムで良好なパフォーマンスを得るためのコンパイルを行います

コンパイラは、コンパイルが実行されている現在のシステムプロセッサに適した設定を選択します。これは、-fast オプションのデフォルトです。

native64

このシステムの 64 ビットモードで良好なパフォーマンスを得るためのコンパイルを行います

(Solaris のみ) このオプションは -m64 -xarch=native と同等で、旧バージョンとの互換を提供します。

sparc

SPARC V9-ISA 用のコンパイルを行います。

V9 ISA 用のコンパイルですが、Visual Instruction Set (VIS) や、その他の実装固有の ISA 拡張機能は含まれません。このオプションを使用して、コンパイラは、V9 ISA で良好なパフォーマンスが得られるようにコードを生成できます。 

sparcvis

UltraSPARC 拡張機能付きの SPARC-V9 ISA 用のコンパイルを行います。

Visual Instruction Set (VIS) version 1.0 および UltraSPARC 拡張機能付きの SPARC-V9 用のコンパイルを行います。このオプションを使用して、コンパイラは、UltraSPARC アーキテクチャーで良好なパフォーマンスが得られるようにコードを生成できます。 

sparcvis2

UltraSPARC-III 拡張機能付きの SPARC-V9 ISA 用のコンパイルを行います

コンパイラは、UltraSPARC アーキテクチャー + Visual Instruction Set (VIS) version 2.0 + UltraSPARC-III 拡張機能用のオブジェクトコードを生成できます。 

sparcfmaf

SPARC-V9 ISA の sparcfmaf バージョン用のコンパイルを行います

コンパイラは、SPARC-V9 命令セット + UltraSPARC 拡張機能 + Visual Instruction Set (VIS) version 1.0 + UltraSPARC-III 拡張機能 + Visual Instruction Set (VIS) version 2.0 + 浮動小数点積和演算用の SPARC64 VI 拡張機能の命令を使用できます。 

コンパイラが自動的に積和演算命令を使用する機会を見つけられるようにするには、-xarch=sparcfmaf および -fma=fused と最適化レベルを組み合わせて使用する必要があります。

v9

-m64 -xarch=sparc と同義です。64 ビットのメモリーモデルを得るために -xarch=v9 を使用する従来のメイクファイルおよびスクリプトは、-m64 を使用するだけで済みます。

v9a

-m64 -xarch=sparcvis と同義です。旧バージョンとの互換を提供します。

v9b

-m64 -xarch=sparcvis2 と同義です。旧バージョンとの互換を提供します。

表 3–13 に、x86 プラットフォーム上で使用する各 -xarch キーワードについて詳細に説明します。x86 で -xarch が指定されなかった場合のデフォルトは、generic です。

表 3–13 x86 プラットフォーム上の -xarch の値

-xarch=

意味 (x86) 

generic

たいていの 32 ビット x86 プラットフォームで良好なパフォーマンスを得るために、コンパイルを行います。これはデフォルトで、-xarch=386 と同義です。

generic64

たいていの 64 ビット x86 プラットフォームで良好なパフォーマンスを得るために、コンパイルを行います。現在は、amd64 と解釈されます。

native

x86 アーキテクチャーで良好なパフォーマンスを得るために、コンパイルを行います。たいていの x86 プロセッサで良好なパフォーマンスを得るために、最良の命令セットを使用します。「最良な」命令セットの内容は、必要に応じて新しいリリースごとに調整される可能性があります。 

native64

64 ビット x86 アーキテクチャーで良好なパフォーマンスを得るために、コンパイルを行います。 

386

命令セットを Intel 386/486 アーキテクチャーに限定します。 

pentium_pro

命令セットを Pentium Pro アーキテクチャーに制限します。 

pentium_proa

AMD 拡張機能 (3DNow!、3DNow! 拡張機能、および MMX 拡張機能) を 32 ビット Pentium Pro アーキテクチャーに追加します。 

sse

pentium_pro に SSE 命令セットを追加します (次を参照)。

ssea

AMD 拡張機能 (3DNow!、3DNow! 拡張機能、および MMX 拡張機能) を 32 ビット SSE アーキテクチャーに追加します。 

sse2

pentium_pro に SSE2 命令セットを追加します (次を参照)。

sse2a

AMD 拡張機能 (3DNow!、3DNow! 拡張機能、および MMX 拡張機能) を 32 ビット SSE2 アーキテクチャーに追加します。 

sse3

SSE2 命令セットに SSE3 命令セットを追加します。 

amd64

-m64 -xarch=sse2 と同義です (Solaris のみ) 。64 ビットのメモリーモデルを得るために -xarch=amd64 を使用する従来のメイクファイルおよびスクリプトは 、-m64 を使用するだけで済みます。

amd64a

—m64 —xarch=sse2a と同義です (Solaris のみ)。

3.4.113.1 x86/x64 プラットフォームでの特別な注意

x86 Solaris プラットフォームでコンパイルを行う場合は、次の点が重要です。