在此例中,编译和链接在单独的步骤中进行:
cc -xipo -xO4 -o prog part1.c part2.c part3.c |
优化器在三个源文件之间执行交叉文件内联。这是在最终链接步骤中完成的,因此源文件的编译不必全部在单个编译中进行,可以通过多个单独的编译来进行,且每个编译都要指定 -xipo。
在此例中,编译和链接在单独的步骤中进行:
cc -xipo -xO4 -c part1.c part2.c cc -xipo -xO4 -c part3.c cc -xipo -xO4 -o prog part1.o part2.o part3.o |
即使用 -xipo 编译,仍存在库不参与交叉文件过程间分析的约束,如下例所示:
cc -xipo -xO4 one.c two.c three.c ar -r mylib.a one.o two.o three.o ... cc -xipo -xO4 -o myprog main.c four.c mylib.a |
在此例中,过程间调用优化是在以下例程之间执行的:one.c、two.c 和 three.c 之间,main.c 和 four.c 之间,但不在 main.c 或 four.c 和 mylib.a 上的例程之间执行。(第一次编译可能产生未定义符号警告,但是由于它是编译与链接步骤,所以会执行过程间调用优化。)