Sun Studio 12:C 用户指南

B.2.81 -xcrossfile[= n]

跨源文件启用优化和内联。如果指定该选项,n 可为 0 或 1。

缺省值为 -xcrossfile=0,该设置指定不执行跨文件优化。-xcrossfile-xcrossfile=1 等效。

请参考下列命令行示例:


example% cc -xcrossfile -xO4 -c f1.c f2.c
example% cc -xcrossfile -xO4 -c f3.c f4.c

跨模块优化发生在文件 f1.cf2.c 之间,以及 f3.cf4.c 之间。在 f1.cf3.cf4.c 之间不发生优化。

通常,在命令行上编译器的分析范围限于每个独立的文件。例如,-xO4 的自动内联处理仅限于同一源文件中定义和引用的子程序。

编译器使用 -xcrossfile 可以分析在命令行上指定的所有文件,好像这些文件被连接到单一的源文件中一样。仅当与 -xO4-xO5 一起使用时,-xcrossfile 才有效。

但是,如果通过指定 -S 选项指示编译器生成汇编源文件,此选项将无效。汇编 (.s) 文件不参与跨源文件的优化和内联。

这种编译所产生的文件由于可能的内联而相互依赖,而且在将这些文件链接到程序时必须将其作为一个整体使用。如果更改了任何一个例程并重新编译了文件,则必须重新编译所有的文件。因此,使用此选项将会影响 make 文件的构成。

另请参见 -xldscope