Oracle Solaris Studio 12.2: Fortran ユーザーズガイド

3.4.110 -xarch=isa

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

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

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

プラットフォーム  

有効な -xarch キーワード

SPARC 

genericgeneric64 nativenative64sparcsparcvissparcvis2sparcvis3sparcfmafv9v9av9b

x86 

genericnative386pentium_prossesse2amd64pentium_proasseasse2aamd64asse3、sse3a、ssse3、sse4_1、sse4_2、amdsse4a

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

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

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

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

このオプションを最適化で使用する場合は、適切なアーキテクチャーを選択すると、そのアーキテクチャー上での実行パフォーマンスを向上させることができます。不適切なアーキテクチャーを選択すると、バイナリプログラムがその対象プラットフォーム上で実行できなくなることがあります。

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

-xarch が指定されない場合のデフォルトは、generic です。

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

表 3–13 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 用のコンパイルを行います。

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

sparcvis2

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

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

sparcvis3

SPARC VIS version 3 の SPARC-V9 ISA 用にコンパイルします。

SPARC-V9 命令セット、VIS (Visual Instruction Set) version 1.0 を含む UltraSPARC 拡張機能、VIS (Visual Instruction Set) version 2.0、積和演算 (FMA) 命令、および VIS (Visual Instruction Set) version 3.0 を含む UltraSPARC-III 拡張機能の命令をコンパイラが使用できるようになります。 

sparcfmaf

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

SPARC-V9 命令セット、VIS (Visual Instruction Set) version 1.0 を含む UltraSPARC 拡張機能、VIS (Visual Instruction Set) version 2.0 を含む UltraSPARC-III 拡張機能、および浮動小数点積和演算用の SPARC64 VI 拡張機能の命令をコンパイラが使用できるようになります。 

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

sparcima

sparcima 版の SPARC-V9 ISA 用にコンパイルします。コンパイラが、SPARC-V9 命令セットに加えて、VIS (Visual Instruction Set) Version 1.0 を含む UltraSPARC 拡張機能、VIS (Visual Instruction Set) Version 2.0 を含む UltraSPARC-III 拡張機能、浮動小数点の積和演算用の SPARC64 VI 拡張機能、整数の積和演算用の SPARC64 VII 拡張機能からの命令を使用できるようにします。 

v9

-m64 -xarch=sparc と同義です。 64 ビットのメモリーモデルを取得するために -xarch=v9 を使用している従来のメイクファイルおよびスクリプトでは、-m64 のみを使用する必要があります。

v9a

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

v9b

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

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

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

-xarch=

意味 (x86)  

generic

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

generic64

たいていの 64 ビット x86 プラットフォームで良好なパフォーマンスを得るために、コンパイルを行います。sse2 と同義です。

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

Solaris プラットフォームでは、-m64 -xarch=sse2 と同義です。 64 ビットのメモリーモデルを取得するために -xarch=amd64 を使用している従来のメイクファイルおよびスクリプトでは、-m64 を使用する必要があります。

amd64a

Solaris プラットフォームでは、—m64 —xarch=sse2a と同義です。

sse3a

AMD 拡張命令 (3DNow! など) をSSE3 命令セットに追加します。 

ssse3

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

sse4_1

SSSE3 命令セットに SSE4.1 命令を追加します。 

sse4_2

SSE4.1 命令セットに SSE4.2 命令を追加します。 

amdsse4a

AMD 命令セットに SSE4a 命令を追加します。 

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

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