|
About Interprocedural Optimization (IPO)
|
Pros
|
The compiler may
produce faster code. |
|
No makefile changes
are required with -Qip. |
|
-Qipo
is the only option that enables multi-file optimizations. |
|
Cons
|
Code size may
bloat. |
|
Compilation may take
more time. |
|
|
Interprocedural optimization (IPO) enables multifile inlining, constant
propagation, code placement (i.e. function layout), and data placement.
It also provides information about parameters that are aliased, modified,
or referenced across call sites. Also, see disambiguation.
When IPO is enabled, the compiler analyzes your code for these optimizations:
- inline function expansionaffecting calls, jumps, branches and
loops
- interprocedural constant propagationaffecting arguments, global
variables and return values
- dead code eliminationaffecting code size
- propagation of function characteristicsaffecting call deletion
and call movement
Use IPO in conjunction with PGO for further performance
improvement.
|
|