为指令集和优化指定目标平台。
t 必须是以下值之一: native、native64、generic、generic64 和 platform–name。
-xtarget 选项允许简便快捷地指定发生在实际平台上的 -xarch、-xchip 和 -xcache 组合。-xtarget 的唯一含义在其扩展中。
通过为编译器提供目标计算机硬件的精确描述,某些程序的性能可得到提高。当程序性能很重要时,目标硬件的正确指定是非常重要的。在较新的 SPARC 处理器上运行时,尤其是这样。不过,对大多数程序和较旧的 SPARC 处理器来讲,性能的提高微不足道,因此指定 generic 就足够了。
-xtarget 值的实际扩展可能会因发行版的不同而异。通过使用 -dryrun 标志,您始终可以确定编译器将使用的扩展:
demo% f95 -dryrun -xtarget=ultra4plus ### command line files and options (expanded): ### -dryrun -xarch=sparcvis -xcache=64/32/4/1:2048/64/4/2:32768/64/4/2 -xchip=ultra4plus |
请注意,针对特定名称平台的 —xtarget 扩展不得与同一平台上的 —xtarget=native 相同。
优化主机平台(32 位)的性能。
扩展至 —m32 —xarch=native —xchip=native —xcache=native
已过时。改用 —xtarget=native —m64。
为大多数 32 位平台获得最佳性能。
这是缺省值并可扩展至: -m32 -xarch=generic -xchip=generic -xcache=generic
已过时。改用 -xtarget=generic -m64。
获取以下列出的指定平台的最佳性能。
下表列出了编译器接受的常用系统平台的名称。
表 3–16 常用的 -xtarget 系统平台的扩展
-xtarget= platform-name |
-xarch |
-xchip |
-xcache |
---|---|---|---|
sparc64vi |
sparcfmaf |
sparc64vi |
128/64/2:5120/64/10 |
sparc64vii |
sparcima |
sparc64vii |
64/64/2:5120/256/10 |
ultra |
sparcvis |
ultra |
16/32/1:512/64/1 |
ultra1/140 |
sparcvis |
ultra |
16/32/1:512/64/1 |
ultra1/170 |
sparcvis |
ultra |
16/32/1:512/64/1 |
ultra1/200 |
sparcvis |
ultra |
16/32/1:512/64/1 |
ultra2 |
sparcvis |
ultra2 |
16/32/1:512/64/1 |
ultra2/1170 |
sparcvis |
ultra |
16/32/1:512/64/1 |
ultra2/1200 |
sparcvis |
ultra |
16/32/1:1024/64/1 |
ultra2/1300 |
sparcvis |
ultra2 |
16/32/1:2048/64/1 |
ultra2/2170 |
sparcvis |
ultra |
16/32/1:512/64/1 |
ultra2/2200 |
sparcvis |
ultra |
16/32/1:1024/64/1 |
ultra2/2300 |
sparcvis |
ultra2 |
16/32/1:2048/64/1 |
ultra2e |
sparcvis |
ultra2e |
16/32/1:256/64/4 |
ultra2i |
sparcvis |
ultra2i |
16/32/1:512/64/1 |
ultra3 |
sparcvis |
ultra3 |
64/32/4:8192/512/1 |
ultra3cu |
sparcvis |
ultra3cu |
64/32/4:8192/512/2 |
ultra3i |
sparcvis |
ultra3i |
64/32/4:1024/64/4 |
ultra4 |
sparcvis |
ultra4 |
64/32/4:8192/128/2 |
ultra4plus |
sparcvis |
ultra4plus |
64/32/4/1:2048/64/4/2:32768/64/4/2 |
ultraT1 |
sparc |
ultraT1 |
8/16/4/4:3072/64/12/32 |
ultraT2 |
sparcvis2 |
ultraT2 |
8/16/4:4096/64/16 |
ultraT2plus |
sparcvis2 |
ultraT2plus |
8/16/4:4096/64/16 |
-m64 标志表示针对启用了 64 位的平台上的 64 位 Solaris OS 进行编译。如果指定了 -xtarget,则 -m64 必须出现在 -xtarget 标志之后,如下所示:
-xtarget=ultra2 ... -m64 |
否则,将使用缺省的 32 位内存模型。
对于 x86 系统,有效的 -xtarget 平台名称如下:
generic、native、pentium、pentium_pro、pentium3、pentium4、woodcrest、penryn、nehalem、barcelona 和 opteron。
表 3–17 -xtarget 值(x86 平台)
-xtarget= |
-xarch |
-xchip |
-xcache |
---|---|---|---|
generic |
generic |
generic |
generic |
opteron |
sse2 |
opteron |
64/64/2:1024/64/16 |
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 |
-m64 标志表示针对启用了 64 位的 x86 平台上的 64 位 Solaris OS 进行编译。例如,使用 -xtarget=opteron 进行编译是不必要的或不够的。如果指定了 -xtarget,则 -m64 选项必须出现在 -xtarget 标志之后,如下所示:
-xtarget=opteron -m64 |
否则,编译将为 32 位 x86。