跨源文件启用优化和内联。如果指定该选项,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.c 和 f2.c 之间,以及 f3.c 和 f4.c 之间。在 f1.c 和 f3.c 或 f4.c 之间不发生优化。
通常,在命令行上编译器的分析范围限于每个独立的文件。例如,-xO4 的自动内联处理仅限于同一源文件中定义和引用的子程序。
编译器使用 -xcrossfile 可以分析在命令行上指定的所有文件,好像这些文件被连接到单一的源文件中一样。仅当与 -xO4 或 -xO5 一起使用时,-xcrossfile 才有效。
但是,如果通过指定 -S 选项指示编译器生成汇编源文件,此选项将无效。汇编 (.s) 文件不参与跨源文件的优化和内联。
这种编译所产生的文件由于可能的内联而相互依赖,而且在将这些文件链接到程序时必须将其作为一个整体使用。如果更改了任何一个例程并重新编译了文件,则必须重新编译所有的文件。因此,使用此选项将会影响 make 文件的构成。
另请参见 -xldscope。