HyperLink   Region-Based Compilation.
Publication Year:
  Richard E. Hank
  PhD thesis, Department of Electrical and Computer Engineering, University of Illinois, Urbana IL, May 1996

The increasing amount of instruction-level parallelism (ILP) required to fully utilize high issue-rate processors has forced the compiler to perform more aggressive analysis, optimization, parallelization and scheduling on the input programs. Yet, the compiler designer must scale back the use of aggressive transformations in order to contain compile time and memory usage. The root of the problem lies in the function-oriented framework assumed in conventional compilers. Traditionally the compilation process has been built using the function as a compilation unit, because the function provides a convenient partition of the program. However, the size and contents of a function may not provide the best environment for aggressive analysis and optimization. This dissertation presents a technique in which the compiler is allowed to repartition the program into more desirable compilation units, called regions. Placing the compiler in control of the size and contents of the compilation unit reduces the importance of the algorithmic complexity of the applied transformations, allowing more aggressive transformations to be applied while reducing compilation time.

The region concept has been traditionally applied within an ILP compiler only in the context of code scheduling. This dissertation proposes extending the concept of region partitioning to the entire compilation process. The implications of region-based compilation to the design of an ILP compiler will be assessed in the context of classical, ILP optimization and register allocation. A quantitative analysis is performed to determine the quality of the code produced by a region-based ILP compiler as compared to a function-based ILP compiler, as well as the compilation time and memory usage benefits afforded by region-based compilation units.