Sun Studio 12:C 用户指南

B.2.144 -xtarget=t

为指令集和优化指定目标系统。

t 的值必须是下列值之一:nativegenericnative64generic64system-name

-xtarget 的每个特定值都会扩展到 -xarch-xchip-xcache 选项值的特定集合。使用 -xdryrun 选项可在运行的系统上确定 -xtarget=native 的扩展。

例如,-xtarget=sun4/15 与以下内容等效:-xarch=v8a -xchip=micro -xcache=2/16/1


注 –

在特定主机平台上编译时,该平台的 -xtarget 扩展可能无法扩展到与 -xtarget=native 相同的 -xarch-xchip-xcache 设置。


表 B–37 -xtarget 值(所有平台)

标志 

含义 

native

在主机系统上获取最佳性能。 

编译器生成能在主机系统上提供最佳性能的代码。它决定了运行编译器的计算机的可用体系结构、芯片和缓存属性。 

native64

在主机系统上获取 64 位二进制目标文件的最佳性能。编译器生成为主机系统优化的 64 位二进制目标文件。它决定了运行编译器的计算机的可用 64 位体系结构、芯片和缓存属性。 

generic

这是缺省值。获取通用体系结构、芯片和缓存的最佳性能。 

generic64

为了在大多数 64 位平台体系结构上获得 64 位二进制目标文件的最佳性能而设置参数。 

system-name

获取指定系统的最佳性能。 

从下面的列表中选择一个表示您实际使用的系统的系统名称。 

通过为编译器提供目标计算机硬件的精确描述,某些程序的性能可得到提高。当程序性能很重要时,目标硬件的正确指定是非常重要的。在较新的 SPARC 处理器上运行时,尤其是这样。不过,对大多数程序和较旧的 SPARC 处理器来讲,性能的提高微不足道,因此指定 generic 就足够了。

B.2.144.1 SPARC 平台的 -xtarget

使用 -m64 选项可指示在 SPARC 或 UltraSPARC V9 上编译 64 位 Solaris 软件。如果指定带有除 native64generic64 以外的标志的 -xtarget,则还必须按如下方式指定 -m64 选项:-xtarget=ultra... -m64,否则编译器将使用 32 位内存模型。

表 B–38 SPARC 上的 -xtarget 扩展

-xtarget= 

-xarch 

-xchip 

-xcache 

generic

generic

generic

generic

cs6400

v8

super

16/32/4:2048/64/1

entr150

v8

ultra

16/32/1:512/64/1

entr2

v8plusa

ultra

16/32/1:512/64/1

entr2/1170

v8plusa

ultra

16/32/1:512/64/1

entr2/1200

v8plusa

ultra

16/32/1:512/64/1

entr2/2170

v8plusa

ultra

16/32/1:512/64/1

entr2/2200

v8plusa

ultra

16/32/1:512/64/1

entr3000

v8plusa

ultra

16/32/1:512/64/1

entr4000

v8plusa

ultra

16/32/1:512/64/1

entr5000

v8plusa

ultra

16/32/1:512/64/1

entr6000

v8plusa

ultra

16/32/1:512/64/1

sc2000

v8

super

16/32/4:2048/64/1

solb6

v8

super

16/32/4:1024/32/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/402

v8

super

16/32/4

ss10/41

v8

super

16/32/4:1024/32/1

ss10/412

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/512

v8

super

16/32/4:1024/32/1

ss10/514

v8

super

16/32/4:1024/32/1

ss10/61

v8

super

16/32/4:1024/32/1

ss10/612

v8

super

16/32/4:1024/32/1

ss10/71

v8

super2

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

ss1000

v8

super

16/32/4:1024/32/1

ss20

v8

super

16/32/4:1024/32/1

ss20/151

v8

hyper

512/64/1

ss20/152

v8

hyper

512/64/1

ss20/50

v8

super

16/32/4

ss20/502

v8

super

16/32/4

ss20/51

v8

super

16/32/4:1024/32/1

ss20/512

v8

super

16/32/4:1024/32/1

ss20/514

v8

super

16/32/4:1024/32/1

ss20/61

v8

super

16/32/4:1024/32/1

ss20/612

v8

super

16/32/4:1024/32/1

ss20/71

v8

super2

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

ss4

v8a

micro2

8/16/1

ss4/110

v8a

micro2

8/16/1

ss4/85

v8a

micro2

8/16/1

ss5

v8a

micro2

8/16/1

ss5/110

v8a

micro2

8/16/1

ss5/85

v8a

micro2

8/16/1

ss600/41

v8

super

16/32/4:1024/32/1

ss600/412

v8

super

16/32/4:1024/32/1

ss600/51

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/61

v8

super

16/32/4:1024/32/1

ss600/612

v8

super

16/32/4:1024/32/1

sslc

v8a

micro

2/16/1

sslx

v8a

micro

2/16/1

sslx2

v8a

micro2

8/16/1

ssvyger

v8a

micro2

8/16/1

sun4/15

v8a

micro

2/16/1

sun4/30

v8a

micro

2/16/1

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

v8plusa

ultra3

64/32/4:8192/512/1

ultra3cu

v8plusa

ultra3cu

64/32/4:8192/512/2

ultra3i

v8plusa

ultra3i

64/32/4:1024/64/4

ultra4

v8plusa

ultra4

64/32/4:8192/128/2

ultra4plus

v8plusa

ultra4plus

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

ultraT1

v8plusa

ultraT1

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

ultraT2

sparcvis2

ultraT2

8/16/4:4096/64/16

sparc64vi

sparcfmaf

sparc64vi

128/64/2:5120/64/10

有关 UltraSPARC IVplus、UltraSPARC T1 和 UltraSPARC T2 芯片的缓存属性的更多信息,请参见B.2.74 -xcache[= c]

B.2.144.2 x86 平台的 -xtarget

使用 -m64 选项可指示在 64 位 x86 平台上编译 64 位 Solaris 软件。如果指定带有除 native64generic64 以外的标志的 -xtarget,则还必须按如下方式指定 -m64 选项:-xtarget=opteron ... -m64,否则编译器将使用 32 位内存模型。

表 B–39 x86 上的 -xtarget 扩展

-xtarget= 

-xarch 

-xchip 

-xcache 

generic

generic

generic

generic

386

已废弃。改用 -xtarget=generic。有关废弃选项的完整列表,请参见A.1.15 废弃的选项

486

已废弃。改用 -xtarget=generic。有关废弃选项的完整列表,请参见A.1.15 废弃的选项

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