  Region-based compilation repartitions a program into more desirable
compilation units using profiling information and procedure inlining to enable
region formation analysis. Heuristics play a key role in determining when it is
most beneficial to inline procedures during region formation. An ILP optimizing
compiler using a region-based approach restructures a program to better reflect
dynamic behavior and increase interprocedural optimization and scheduling
opportunities. This paper presents an interprocedural compilation technique
which performs procedure inlining on-demand, rather than as a separate phase,
to improve the ability of a region-based optimizer to control code growth,
compilation time and memory usage while improving performance. The
interprocedural region formation algorithm utilizes a demand-driven,
heuristics-guided approach to inlining, restructuring an input program into
interprocedural regions. Experimental results are presented to demonstrate the
impact of the algorithm and several inlining heuristics upon a number of
traditional and novel compilation characteristics within a region-based ILP
compiler and simulator.
