Sun Studio 12 Update 1:C++ 用户指南

A.2.130.1 值

func_spec 必须是下列值之一。

表 A–33 -xinline

值  

含义  

%auto

-xO4 或更高的优化级别上启用自动内联。此参数告知优化器它可以内联所选择的函数。请注意,如果没有指定 %auto,则在命令行上使用 -xinline=[no%]func_name... 指定显式内联后,通常会禁用自动内联。

func_name

强烈请求优化器内联函数。如果函数未声明为 extern "C",则必须损坏 func_name 的值。可以对可执行文件使用 nm 命令来查找损坏的函数名。对于已声明为 extern "C" 的函数,编译器不损坏名称。

no%func_name

如果为列表上的例程添加名称前缀 no%,则会禁止内联该例程。关于 func_name 的损坏名称的规则也适用于 no%func_name

只有使用了 -xipo[=1|2] 时,才会内联要编译的文件中的例程。优化器决定适合内联的例程。

缺省值

如果未指定 -xinline 选项,则编译器假定 -xinline=%auto

如果指定了没有任何参数的 -xinline=,则不内联函数,而不管优化级别是什么。

示例

要启用自动内联同时禁用内联声明为 int foo() 的函数,请使用


example% CC -xO5 -xinline=%auto,no%__1cDfoo6F_i_ -c a.cc

要强烈要求内联声明为 int foo() 的函数,并使所有其他函数作为要内联的候选函数,请使用


example% CC -xO5 -xinline=%auto,__1cDfoo6F_i_ -c a.cc

要强烈要求内联声明为 int foo() 的函数,且不允许内联任何其他函数,请使用


example% CC -xO5 -xinline=__1cDfoo6F_i_ -c a.cc

交互

优化级别低于 -xO3 时,-xinline 选项不起作用。在 -xO4 或更高的优化级别上,优化器会决定应该内联哪些函数,无需指定 -xinline 选项即可完成。另外,在 -xO4 或更高的优化级别上,编译器会尝试确定内联哪些函数可以提高性能。

如果出现以下任一情况,则会内联例程。

警告

如果使用 -xinline 强制内联函数,实际上可能会降低性能。

另请参见

A.2.136 -xldscope={v}