Region-Based Compilation: An Introduction and Motivation

Richard E. Hank, Wen-mei W. Hwu, B. Ramakrishna Rau

Abstract

As the amount of instruction-level parallelism required to fully utilize VLIW and superscalar processors increases, compilers must perform increasingly more aggressive analysis, optimization, parallelization and scheduling on the input programs. Traditionally compilers have been built assuming functions as the unit of compilation, making compiler performance heavily dependent upon the contents of the function. The function-based partitioning tends to hide valuable optimization opportunities form the compiler making it undesirable. Function inlining may be applied to assemble inter-procedurally coupled functions into the same compilation unit at the cost of very large function bodies. This paper introduces a new technique called region-based compilation where the compiler is allowed to repartition the program into more desirable compilation units. Region-based compilation units allow the compiler to control problem size while exposing inter-procedural optimization and code motion opportunities.

Keywords

ILP compilation, region-based compilation, compilation time complexity, inlining, code expansion

Talk Overheads (228215 bytes)