Sun Studio 12:C 用户指南

B.2.117.1 SPARC 优化的说明

下表描述了它们在 SPARC 平台上如何操作。

表 B–31 SPARC 平台上的 -xO 标志

值 

含义 

-xO1

执行基本局部优化(窥孔优化)。 

-xO2

执行基本局部和全局优化。其中包括感应变量排除、局部和全局常用子表达式排除、代数简化、 副本传播、常量传播、循环不可变优化、寄存器分配、基本块合并、尾部循环排除、死代码排除、尾部调用排除和复杂表达式扩展。 

-xO2 级别不会将全局、外部或间接引用或定义分配给寄存器。它将这些引用和定义视为被声明为 volatile。一般说来,-xO2 级别产生的代码最小。

-xO3

类似于执行 -xO2,但还会优化外部变量的引用或定义。还执行循环解开和软件流水线作业。该级别不跟踪指针赋值的结果。在编译设备驱动程序或从信号处理程序内部修改外部变量的程序时,可能需要使用 volatile 类型限定符来保护对象,使其免于优化。一般说来,-xO3 级别会导致代码增大。

-xO4

类似于执行 -xO3,但是还自动内联包含在相同文件中的函数;这通常会提高执行速度。如果要控制内联哪些函数,请参见B.2.91 -xinline=list

该级别跟踪指针赋值的效果,通常导致代码增大。 

-xO5

试图生成最高优化级别。使用编辑时间更长或减少执行时间的程度不是很高的优化算法。如果使用配置文件反馈执行该级别上的优化,将更容易提高性能。请参见B.2.131 -xprofile=p