Compiler optimization of computer programs is necessary to exploit the features of the target architecture while masking the details of the architecture from the programmer. The continuing trends toward instruction-level parallel computers and larger programs promote and necessitate the development of optimization techniques which increase available parallelism simultaneously with controlling compilation time and memory usage. These state-of-the-art techniques are referred to as ambitious optimization techniques. Well-known approaches to increasing the scope of optimization without sacrificing precision of analysis include procedure inlining and cloning. Region-based compilation seeks to improve the scope of optimization to improve code quality while bounding optimization costs associated with inlining and cloning. This book develops and explores scalable procedure restructuring techniques that use demand-driven inlining and region-based optimizations, focused on the application of heuristics.