Oracle® Solaris Studio 12.4:Fortran 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

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

对可重定位对象文件执行链接时优化。

后优化器在链接时对二进制对象代码执行一些高级性能优化。可以使用可选值来设置执行的优化级别,可选值必须为 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

-xlinkopt 选项需要分析反馈 (-xprofile) 来优化程序。分析功能会展示代码中最常用和最不常用的部分,从而使优化器相应地进行处理。链接时优化对大型应用程序尤为重要,因为在链接时执行代码优化放置可降低指令高速缓存未命中数。另外,-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 标志进行编译,则会因包括调试信息而增加了可执行文件的大小。