Sun Studio 12:Fortran 编程指南

9.1.1.9 -xtarget=platform

如果编译器具有目标计算机硬件的精确描述,可能会提高一些程序的性能。当程序性能很重要时,目标硬件的正确说明会是非常重要的。在较新的 SPARC 处理器上运行时这一点尤其重要。但是,对于大多数程序和较早的 SPARC 处理器,性能增益是微不足道的,一般性说明可能就足够了。

Fortran 用户指南》列出了 -xtarget= 识别的所有系统名称。对于任意给定的系统名称(例如,对于 UltraSPARC-II,名称为 ultra2),-xtarget 会扩展成与该系统正确匹配的 -xarch-xcache-xchip 的组合。优化器使用这些说明来确定遵循的策略和生成的指令。

特殊设置 -xtarget=native 使优化器能够针对主机系统(执行编译的系统)编译目标代码。当编译和执行均在相同的系统上进行时,这显然是非常有益的。当执行系统未知时,针对通用体系结构进行编译较为适宜。因此,缺省设置为 -xtarget=generic,即使它有可能达不到最佳性能。

UltraSPARC-III 和 UltraSPARC-IV 支持

-xtarget-xchip 标志均接受 ultra3ultra3 变体,并且为 UltraSPARC-III 和 UltraSPARC-IV 处理器生成优化代码。当在最新的 UltraSPARC 平台上编译和运行应用程序时,请指定 -fast 标志,以便为该平台自动选择正确的编译器优化选项。

对于交叉编译(编译在非最新的 UltraSPARC 平台上进行,但生成专用于在 UltraSPARC-III 处理器上运行的二进制代码),使用下列标志:

-fast -xtarget=ultra3

使用 -m64 编译可生成 64 位代码。

有关最新 UltraSPARC 处理器的 -xtarget 标志列表,请参见《Fortran 用户指南》。

在 UltraSPARC-III 和 UltraSPARC-IV 平台上进行性能剖析(使用 -xprofile=collect:-xprofile=use:)效果尤为突出,这是因为它允许编译器识别经常执行的程序部分并进行最佳的本地化优化。

64 位 x86 平台支持

Sun Studio Fortran 编译器支持 Solaris 和 Linux x86 平台的 32 位和 64 位代码编译。

-xtarget=pentium3 标志将展开为:-xarch=sse -xchip=pentium3 -xcache=16/32/4:256/32/4.

对于 Pentium 4 系统,-xtarget=pentium4 将展开为:-xarch=sse2 -xchip=pentium4 -xcache=8/64/4:256/128/8.

新的 -m64 选项用来指定对 64 位 x64 指令集的编译。

新的 -xtarget 选项、-xtarget=opteron 为 32 位 AMD 编译指定了 -xarch-xchip-xcache 设置。

要生成 64 位代码,必须在命令行中 -fast-xtarget 的后面指定 -m64-xtarget 选项并不自动生成 64 位代码。-fast 选项也会产生 32 位代码,因为它也是一个定义 -xtarget 值的宏。所有当前 -xtarget 值(-xtarget=native64-xtarget=generic64 除外)将产生 32 位代码,因此必须在 -fast-xtarget 之后(右侧)指定 -xarch=m64 以编译 64 位代码,如下所示:

% f95 -fast -m64 % f95 -xtarget=opteron -m64

如果指定了 -xarch=amd64,编译器会立即预定义 __amd64__x86_64

在《Fortran 用户指南》中,可以找到有关 32 位和 64 位 x86 平台上的编译和性能的其他信息。