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

A.2.181.1 プラットフォームごとの -xtarget の値

この節では、—xtarget 値をプラットフォームごとに説明します。次の表は、すべてのプラットフォーム向けの —xtarget の値を一覧表示します。

表 A–47 すべてのプラットフォームでの -xtarget の値

値 

意味  

native

ホストシステムで最高のパフォーマンスが得られます。コンパイラは、ホストシステム用に最適化されたコードを生成します。コンパイラは自身が動作しているマシンで利用できるアーキテクチャー、チップ、キャッシュ特性を判定します。 

native64

ホストシステムで 64 ビットのオブジェクトバイナリの最高のパフォーマンスが得られます。コンパイラは、ホストシステム用に最適化された 64 ビットのオブジェクトバイナリを生成します。コンパイラが動作しているマシンで使用できる 64 ビットのアーキテクチャー、チップ、キャッシュ特性を判定します。 

generic

これはデフォルト値です。汎用アーキテクチャー、チップ、およびキャッシュで最高のパフォーマンスが得られます。 

generic64

大多数の 64 ビットのプラットフォームのアーキテクチャーで 64 ビットのオブジェクトバイナリの最適なパフォーマンスを得るためのパラメータを設定します。 

システム名

指定するシステムで最高のパフォーマンスが得られます。  

対象となる実際のシステムを表すシステム名を、次のリストから選択してください。 

SPARC プラットフォームの -xtarget の値

SPARC または UltraSPARC V9 での 64 ビット Solaris ソフトウェアのコンパイルは、-m64 オプションで指定します。-xtarget を指定し、native64 または generic64 以外のフラグを付ける場合は、-m64 オプションも次のように指定する必要があります。-xtarget=ultra ... -m64。この指定を行わない場合は、コンパイラは 32 ビットメモリーモデルを使用します。

表 A–48 SPARC アーキテクチャーでの -xtarget の展開

-xtarget=  

-xarch  

-xchip  

-xcache  

generic

generic

generic

generic

ultra

v8plusa

ultra

16/32/1:512/64/1

ultra1/140

v8plusa

ultra

16/32/1:512/64/1

ultra1/170

v8plusa

ultra

16/32/1:512/64/1

ultra1/200

v8plusa

ultra

16/32/1:512/64/1

ultra2

v8plusa

ultra2

16/32/1:512/64/1

ultra2/1170

v8plusa

ultra

16/32/1:512/64/1

ultra2/1200

v8plusa

ultra

16/32/1:1024/64/1

ultra2/1300

v8plusa

ultra2

16/32/1:2048/64/1

ultra2/2170

v8plusa

ultra

16/32/1:512/64/1

ultra2/2200

v8plusa

ultra

16/32/1:1024/64/1

ultra2/2300

v8plusa

ultra2

16/32/1:2048/64/1

ultra2e

v8plusa

ultra2e

16/32/1:256/64/4

ultra2i

v8plusa

ultra2i

16/32/1:512/64/1

ultra3

sparcvis2

ultra3

64/32/4:8192/512/1

ultra3cu

sparcvis2

ultra3cu

64/32/4:8192/512/2

ultra3i

sparcvis2

ultra3i

64/32/4:1024/64/4

ultra4

sparcvis2

ultra4

64/32/4:8192/128/2

ultra4plus

sparcvis2

ultra4plus

64/32/4:2048/64/4:32768/64/4

ultraT1

sparcvis2

ultraT1

8/16/4/4:3072/64/12/32

ultraT2

sparc

ultraT2

8/16/4:4096/64/16

ultraT2plus

sparcvis2

ultraT2plus

8/16/4:4096/64/16

ultraT3

sparcvis3

ultraT3

8/16/4:6144/64/24

sparc64vi

sparcfmaf

sparc64vi

128/64/2:5120/64/10

sparc64vii

sparcima

sparc64vii

64/64/2:5120/256/10

UltraSPARC IVplus、UltraSPARC T1、および UltraSPARC T2 チップのキャッシュプロパティーについての詳細は、「A.2.113 -xcache=cを参照してください。

x86 プラットフォームの -xtarget の値

64 ビット x86 プラットフォームでの 64 ビット Solaris ソフトウェアのコンパイルは、-m64 オプションで指定します。-xtarget を指定し、native64 または generic64 以外のフラグを付ける場合は、-m64 オプションも次のように指定する必要があります。-xtarget=opteron ... -m64。この指定を行わない場合は、コンパイラは 32 ビットメモリーモデルを使用します。

表 A–49 x86 プラットフォームでの -xtarget の値

-xtarget=  

-xarch  

-xchip  

-xcache  

generic

generic

generic

generic

opteron

sse2

opteron

64/64/2:1024/64/16

pentium

386

pentium

generic

pentium_pro

pentium_pro

pentium_pro

generic

pentium3

sse

pentium3

16/32/4:256/32/4

pentium4

sse2

pentium4

8/64/4:256/128/8

nehalem

sse4_2

nehalem

32/64/8:256/64/8: 8192/64/16

penryn

sse4_1

penryn

2/64/8:4096/64/16

woodcrest

ssse3

core2

32/64/8:4096/64/16

barcelona

amdsse4a

amdfam10

64/64/2:512/64/16

デフォルト

SPARC および x86 で、-xtarget を指定しないと、-xtarget=generic が想定されます。

拡張

-xtarget オプションは、市販で購入したプラットフォーム上で使用する -xarch-xchip-xcache の組み合わせを素早く、簡単に指定するためのマクロです。-xtarget の意味は = のあとに指定した値を展開したものにあります。

-xtarget=sun4/15-xarch=v8a -xchip=micro -xcache=2/16/1 を意味します。

相互の関連性

-xarch=v9|v9a|v9b オプションで指定する、SPARC V9 アーキテクチャーのコンパイル。-xtarget=ultraultra2 の設定は、必要でないか、十分ではありません。-xtarget を指定する場合、-xarch=v9|v9a|v9b オプションは -xtarget よりもあとに表示される必要があります。次に例を示します。


-xarch=v9 -xtarget=ultra

前述の指定は次のように展開され、-xarch の値が v8 に戻ります。


-xarch=v9 -xarch=v8 -xchip=ultra -xcache=16/32/1:512/64/1

正しくは、次のように、-xarch-xtarget よりもあとに指定します。次に例を示します。


–xtarget=ultra -xarch=v9

警告

別々の手順でコンパイルしてリンクする場合は、コンパイル手順とリンク手順で同じ -xtarget の設定値を使用する必要があります。