Sun Studio 12:Fortran 用户指南

3.4.146 –xlinkopt[ ={1|2|0}]

(SPARC) 针对可重定位的目标文件执行链接时优化。

后优化器在链接时对二进制目标代码执行一些高级性能优化。可以使用可选值来设置执行的优化级别,可选值必须为 0、1 或 2。

0

禁用后优化器。(这是缺省情况。) 

1

在链接时根据控制流分析执行优化,包括指令高速缓存着色和分支优化。 

2

在链接时执行附加的数据流分析,包括无用代码删除和地址计算简化。 

指定不带值的 -xlinkopt 标志即表示 -xlinkopt=1

这些优化在链接时通过分析二进制目标代码来执行。虽然未重写目标文件,但生成的可执行代码可能与初始目标代码不同。

当与配置文件反馈一起用于编译整个程序时,此选项最有效。

如果在不同的步骤中进行编译,则 -xlinkopt 必须既出现在编译步骤中,也出现在链接步骤中。


demo% f95 -c -xlinkopt a.f95 b.f95
demo% f95 -o myprog -xlinkopt=2 a.o b.o

注意,仅当链接编译器时才使用级别参数。在以上示例中,即使二进制目标文件是用缺省级别 1 编译的,使用的后优化级别也是 2。

不能将链接时后优化器与增量链接程序 ild 一起使用。-xlinkopt 标志会将缺省链接程序设置为 ld。如果使用 -xildon 标志显式启用增量链接程序,将禁用 -xlinkopt 选项(如果同时指定了二者)。

要使 -xlinkopt 选项有用,至少程序中的一些例程(但未必是全部例程)必须使用此选项编译。优化器仍可以对未使用 -xlinkopt 进行编译的二进制目标文件执行部分受限的优化。

-xlinkopt 选项将优化位于编译器命令行上的静态库中的代码,但会跳过位于命令行上的共享(动态)库中的代码且不对其进行优化。生成共享库(用 -G 编译)时,您也可以使用 -xlinkopt

与运行时配置文件反馈一起使用时,链接时后优化器最有效。文件配置功能会展示代码中最常用和最不常用的部分,并指示优化器相应地进行处理。这对大型应用程序尤为重要,因为在链接时执行代码优化放置可降低指令高速缓存未命中数。通常,会按照以下方式进行编译:


demo% f95 -o progt -xO5 -xprofile=collect:prog file.f95
demo% progt
demo% f95 -o prog -xO5 -xprofile=use:prog -xlinkopt file.95

有关使用配置文件反馈的详细信息,请参见 -xprofile 选项。

注意,使用该选项编译会略微延长链接的时间。目标文件的大小也会增加,但可执行文件的大小保持不变。如果使用 -xlinkopt-g 标志进行编译,则会因包括调试信息而增加了可执行文件的大小。