命令セットと最適化処理の対象システムを指定します。
コンパイラにハードウェアシステムを正確に指定すると、プログラムによってはパフォーマンスが向上します。プログラムのパフォーマンスを重視する場合は、ハードウェアを適切に指定することが極めて重要です。特に、プログラムをより新しい SPARC システム上で実行する場合には重要になります。しかし、ほとんどのプログラムおよび旧式の SPARC システムではパフォーマンスの向上はわずかであるため、汎用的な指定方法で十分です。
t の値 |
意味 |
---|---|
native |
ホストシステムで最高のパフォーマンスが得られます。
コンパイラは、ホストシステム用に最適化されたコードを生成し、コンパイラが動作しているマシンで使用できるアーキテクチャ、チップ、キャッシュの属性を決定します。 |
generic |
汎用アーキテクチャ、チップ、キャッシュで最高のパフォーマンスが得られます。 コンパイラは、-xtarget=generic を -xarch=generic -xchip=generic -xcache=generic に展開します。 これはデフォルト値です。 |
system-name |
指定するシステムで最高のパフォーマンスが得られます。 次の節の表から SPARC プラットフォームの名前を選択します。 |
x86 の場合は、-xtarget に次の値を指定できます。
native または generic
386: Intel 80386 マイクロプロセッサで最高のパフォーマンスが得られるコードが生成されます。
486: Intel 80486 マイクロプロセッサで最高のパフォーマンスが得られるコードが生成されます。
pentium: Pentium または Pentium Pro マイクロプロセッサで最高のパフォーマンスが得られるコードが生成されます。
pentium_pro: Pentium Pro マイクロプロセッサで最高のパフォーマンスが得られるコードが生成されます。
SPARC デバイスの場合、-xtarget は次の展開値を受け付けます。
-xtarget |
-xarch |
-xchip |
-xcache |
---|---|---|---|
cs6400 |
v8 |
super |
16/32/4:2048/64/1 |
entr2 |
v8 |
ultra |
16/32/1:512/64/1 |
entr2/1170 |
v8 |
ultra |
16/32/1:512/64/1 |
entr2/1200 |
v8 |
ultra |
16/32/1:512/64/1 |
entr2/2170 |
v8 |
ultra |
16/32/1:512/64/1 |
entr2/2200 |
v8 |
ultra |
16/32/1:512/64/1 |
entr150 |
v8 |
ultra |
16/32/1:512/64/1 |
entr3000 |
v8 |
ultra |
16/32/1:512/64/1 |
entr4000 |
v8 |
ultra |
16/32/1:512/64/1 |
entr5000 |
v8 |
ultra |
16/32/1:512/64/1 |
entr6000 |
v8 |
ultra |
16/32/1:512/64/1 |
sc2000 |
v8 |
super |
16/32/4:2048/64/1 |
solb5 |
v7 |
old |
128/32/1 |
solb6 |
v8 |
super |
16/32/4:1024/32/1 |
ss1 |
v7 |
old |
64/16/1 |
ss1plus |
v7 |
old |
64/16/1 |
ss2 |
v7 |
old |
64/32/1 |
ss2p |
v7 |
powerup |
64/32/1 |
ss4 |
v8a |
micro2 |
8/16/1 |
ss4/85 |
v8a |
micro2 |
8/16/1 |
ss4/110 |
v8a |
micro2 |
8/16/1 |
ss5 |
v8a |
micro2 |
8/16/1 |
ss5/85 |
v8a |
micro2 |
8/16/1 |
ss5/110 |
v8a |
micro2 |
8/16/1 |
ss10 |
v8 |
super |
16/32/4 |
ss10/20 |
v8 |
super |
16/32/4 |
ss10/30 |
v8 |
super |
16/32/4 |
ss10/40 |
v8 |
super |
16/32/4 |
ss10/41 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/50 |
v8 |
super |
16/32/4 |
ss10/51 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/61 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/71 |
v8 |
super2 |
16/32/4:1024/32/1 |
ss10/402 |
v8 |
super |
16/32/4 |
ss10/412 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/512 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/514 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/612 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/712 |
v8 |
super2 |
16/32/4:1024/32/1 |
ss10/hs11 |
v8 |
hyper |
256/64/1 |
ss10/hs12 |
v8 |
hyper |
256/64/1 |
ss10/hs14 |
v8 |
hyper |
256/64/1 |
ss10/hs21 |
v8 |
hyper |
256/64/1 |
ss10/hs22 |
v8 |
hyper |
256/64/1 |
ss20 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/50 |
v8 |
super |
16/32/4 |
ss20/51 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/61 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/71 |
v8 |
super2 |
16/32/4:1024/32/1 |
ss20/151 |
v8 |
hyper |
512/64/1 |
ss20/152 |
v8 |
hyper |
512/64/1 |
ss20/502 |
v8 |
super |
16/32/4 |
ss20/514 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/612 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/712 |
v8 |
super2 |
16/32/4:1024/32/1 |
ss20/hs11 |
v8 |
hyper |
256/64/1 |
ss20/hs12 |
v8 |
hyper |
256/64/1 |
ss20/hs14 |
v8 |
hyper |
256/64/1 |
ss20/hs21 |
v8 |
hyper |
256/64/1 |
ss20/hs22 |
v8 |
hyper |
256/64/1 |
ss600/41 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/51 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/61 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/120 |
v7 |
old |
64/32/1 |
ss600/140 |
v7 |
old |
64/32/1 |
ss600/412 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/512 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/514 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/612 |
v8 |
super |
16/32/4:1024/32/1 |
ss1000 |
v8 |
super |
16/32/4:1024/32/1 |
sselc |
v7 |
old |
64/32/1 |
ssipc |
v7 |
old |
64/16/1 |
ssipx |
v7 |
old |
64/32/1 |
sslc |
v8a |
micro |
2/16/1 |
sslt |
v7 |
old |
64/32/1 |
sslx |
v8a |
micro |
2/16/1 |
sslx2 |
v8a |
micro2 |
8/16/1 |
ssslc |
v7 |
old |
64/16/1 |
ssvygr |
v8a |
micro2 |
8/16/1 |
sun4/15 |
v8a |
micro |
2/16/1 |
sun4/20 |
v7 |
old |
64/16/1 |
sun4/25 |
v7 |
old |
64/32/1 |
sun4/30 |
v8a |
micro |
2/16/1 |
sun4/40 |
v7 |
old |
64/16/1 |
sun4/50 |
v7 |
old |
64/32/1 |
sun4/60 |
v7 |
old |
64/16/1 |
sun4/65 |
v7 |
old |
64/16/1 |
sun4/75 |
v7 |
old |
64/32/1 |
sun4/110 |
v7 |
old |
2/16/1 |
sun4/150 |
v7 |
old |
2/16/1 |
sun4/260 |
v7 |
old |
128/16/1 |
sun4/280 |
v7 |
old |
128/16/1 |
sun4/330 |
v7 |
old |
128/16/1 |
sun4/370 |
v7 |
old |
128/16/1 |
sun4/390 |
v7 |
old |
128/16/1 |
sun4/470 |
v7 |
old |
128/32/1 |
sun4/490 |
v7 |
old |
128/32/1 |
sun4/630 |
v7 |
old |
64/32/1 |
sun4/670 |
v7 |
old |
64/32/1 |
sun4/690 |
v7 |
old |
64/32/1 |
ultra |
v8 |
ultra |
16/32/1:512/64/1 |
ultra1/140 |
v8 |
ultra |
16/32/1:512/64/1 |
ultra1/170 |
v8 |
ultra |
16/32/1:512/64/1 |
ultra1/200 |
v8 |
ultra |
16/32/1:512/64/1 |
ultra2 |
v8 |
ultra2 |
16/32/1:512/64/1 |
ultra2/1170 |
v8 |
ultra |
16/32/1:512/64/1 |
ultra2/1200 |
v8 |
ultra |
16/32/1:1024/64/1 |
ultra2/1300 |
v8 |
ultra2 |
16/32/1:2048/64/1 |
ultra1/2170 |
v8 |
ultra |
16/32/1:512/64/1 |
ultra1/2200 |
v8 |
ultra |
16/32/1:1024/64/1 |
ultra1/2300 |
v8 |
ultra2 |
16/32/1:2048/64/1 |
ultra2i |
v8 |
ultra2i |
16/32/1:512/64/1 |
SPARC でも x86 でも、-xtarget を指定しないと、-xtarget=generic が使用されます。
-xtarget オプションは、購入したプラットフォーム上で使用する -xarch、 -xchip、-xcache の組み合わせを簡単に指定するためのマクロです。-xtarget 自体の意味は、展開することです。
-xtarget=sun4/15 は -xarch=v8a -xchip=micro -xcache=2/16/1 を意味します。
-xarch=v9 または v9a オプションは、SPARC または UltraSPARC V9 上で動作する64 ビット Solaris 7 用にコンパイルするように指示します。このコンパイルのためには、-xtarget=ultra または ultra2 の設定は必要ないか、(必要がある場合は) 十分ではありません。-xtarget を指定する場合は、次に示すように、その後に -xarch=v9 または v9a を指定する必要があります。
-xtarget=ultra -xarch=v9
このように指定しなかった場合は、-xtarget の設定によって -xarch 値が v8 に戻されます。