Capturing Intermediate Outputs of IPO

The -ipo_c and -ipo_S options are useful either for analyzing the effects of IPO, or when using IPO on modules that do not make up a complete program.

Use the -ipo_c option to optimize across files and produce an object file. This option performs optimizations as described for -ipo, but stops prior to the final link stage, leaving an optimized object file. The default name for this file is ipo_out.o. You can use the -o option to specify a different name. For example:

prompt>icpc -tpp6 -ipo_c -ofilename a.cpp b.cpp c.cpp

Use the -ipo_S option to optimize across files and produce an assembly file. This option performs optimizations as described for -ipo, but stops prior to the final link stage, leaving an optimized assembly file. The default name for this file is ipo_out.s. You can use the -o option to specify a different name. For example:

prompt>icpc -tpp6 -ipo_S -ofilename a.cpp b.cpp c.cpp

The -ipo_c and -ipo_S options generate multiple outputs if multi-object IPO is being used. The name of the first file is taken from the value of the -o option. The name of subsequent files is derived from this file by appending a numeric value to the file name. For example, if the first object file is named foo.o, the second object file will be named foo1.o.

The compiler generates a message indicating the name of each object or assembly file it is generating. These files can be added to the real link step to build the final application.