Sun Studio 12 Update 1:Fortran 用户指南

3.4.45 –inline=[%auto][[ ,][no%]f1,…[ no%]fn]

启用或禁用指定例程的内联。

请求优化器对出现在函数和子例程名称列表(用逗号分隔)中的用户编写例程进行内联。在例程名之前加上 no% 可禁用对该例程的内联。

内联是一种优化方法,编译器可以通过该方法有效地将子程序引用(如 CALL 或函数调用)替换为实际的子程序代码本身。内联通常为优化器提供更多生成高效代码的机会。

指定 %auto 可以在优化级别 -O4-O5 上启用自动内联。如果使用 -inline 指定了显式内联,则这些优化级别的自动内联会正常关闭。

示例:对 xbarzbarvpoint 例程进行内联:


demo% f95 -O3 -inline=xbar,zbar,vpoint *.f

下面是一些限制;不发出任何警告:

-inline-O4 一起使用可禁用编译器通常执行的自动内联,除非还指定了 %auto。如果使用 -O4,则编译器通常会尝试对用户编写的所有适当的子例程和函数进行内联。-inline-O4 一起使用可能会降低性能,因为优化器只能对列表中的那些例程进行内联。在这种情况下,请使用 %auto 子选项启用 -O4-O5 级别的自动内联。


demo% f95 -O4 -inline=%auto,no%zpoint *.f

在上例中,用户在禁止对编译器可能尝试的例程 zpoint() 进行任何可能的内联的同时,还启用了 -O4 级别的自动内联。