Sun Studio 12:C 用户指南

B.2.91 -xinline=list

用于 -xinlinelist 的格式如下所示:[{%auto,func_name ,no%func_name}[,{%auto,func_name,no%func_name}]...]

-xinline 尝试只内联可选列表中指定的函数。该列表可为空,或者由逗号分隔的 func_nameno%func_name %auto 列表组成,其中 func_name 是函数名称。仅在 -xO3 或更高级别上,-xinline 才起作用。

表 B–24 -xinline 标志

标志 

含义 

%auto

指定编译器将尝试自动内联源文件中的所有函数。仅在 -xO4 或更高优化级别上,%auto 才起作用。在 -xO3 或更低优化级别上,%auto 被忽略而无提示。

func_name

指定编译器内联已命名的函数。 

no%func_name

指定编译器不内联已命名的函数。 

该列表值从左至右进行累积。因此对于 -xinline=%auto,no%foo 的规范,编译器试图内联除 foo 之外的所有函数。对于 -xinline=%bar,%myfunc,no%bar 的规范,编译器仅尝试内联 myfunc

在优化级别为 -xO4 或更高级别上编译时,编译器通常尝试内联源文件中定义的对函数的所有引用。通过指定 -xinline 选项,您可以限定编译器试图内联的函数集。如果只指定 -xinline=,即不指定任何函数或 %auto,这表示不内联源文件中的任何例程。如果您指定了一系列 func_nameno%func_name,而未指定 %auto,则编译器只试图内联列表中指定的函数。如果在优化级别设置为 -xO4 或更高级别时用 -xinline 选项在值列表中指定 %auto,编译器将试图内联所有未被 no%func_name 显式排除的函数。

如果以下任何条件适用,则不内联函数。且不发出任何警告。

如果在命令行指定多个 -xinline 选项,它们将不会累积。命令行上的最后一个 -xinline 指定编译器试图内联的函数。

另请参见 -xldscope