ABSTRACT
Procedures have long been the basic units of compilation in conventional optimization frameworks. However, procedures are typically formed to serve software engineering rather than optimization goals, arbitrarily constraining code transformations. Techniques, such as aggressive inlining and interprocedural optimization, have been developed to alleviate this problem, but, due to code growth and compile time issues, these can be applied only sparingly.This paper introduces the Procedure Boundary Elimination (PBE) compilation framework, which allows unrestricted whole-program optimization. PBE allows all intra-procedural optimizations and analyses to operate on arbitrary subgraphs of the program, regardless of the original procedure boundaries and without resorting to inlining. In order to control compilation time, PBE also introduces novel extensions of region formation and encapsulation. PBE enables targeted code specialization, which recovers the specialization benefits of inlining while keeping code growth in check. This paper shows that PBE attains better performance than inlining with half the code growth.
- August, D. I., Connors, D. A., Mahlke, S. A., Sias, J. W., Crozier, K. M., Cheng, B., Eaton, P. R., Olaniran, Q. B., and Hwu, W. W. Integrated predication and speculative execution in the IMPACT EPIC architecture. In Proceedings of the 25th International Symposium on Computer Architecture (June 1998), pp. 227--237. Google Scholar
Digital Library
- Ayers, A., Schooler, R., and Gottlieb, R. Aggressive inlining. In ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (June 1997), pp. 134--145. Google Scholar
Digital Library
- Bodik, R., Gupta, R., and Soffa, M. L. Complete removal of redundant computation. In Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation (June 1998), pp. 1--14. Google Scholar
Digital Library
- Callahan, D., Cooper, K. D., Kennedy, K., and Torczon, L. Interprocedural constant propagation. In Proceedings of the ACM SIGPLAN'86 Symposium on Compiler Construction (July 1986), pp. 152--161. Google Scholar
Digital Library
- Chang, P. P., Mahlke, S. A., Chen, W. Y., and Hwu, W. W. Profile-guided automatic inline expansion for C programs. Software Practice and Experience 22 , 5 (May 1992), 349--370. Google Scholar
Digital Library
- Eichenberger, A., Meleis, W., and Maradani, S. An integrated approach to accelerate data and predicate computations in hyperblocks. In Proceedings of the 33rd Annual ACM/IEEE International Symposium on Microarchitecture (November 2000), pp. 101--111. Google Scholar
Digital Library
- Eranian, S. Perfmon: L inux performance monitoring for IA-64. http://www.hpl.hp.com/research/linux/perfmon/, 2003.Google Scholar
- Goubault, J. Generalized boxings, congruences and partial inlining. In First International Static Analysis Symposium (Namur, Belgium, September 1994).Google Scholar
Cross Ref
- Hank, R. E., Hwu, W. W., and Rau, B. R. Region-based compilation: An introduction and motivation. In Proceedings of the 28th Annual International Symposium on Microarchitecture (December 1995), pp. 158--168. Google Scholar
Digital Library
- Havanki, W. A. Treegion scheduling for VLIW processors. Master's thesis, Department of Computer Science, North Carolina State University, 1997. Google Scholar
Digital Library
- Hwu, W. W., and Chang, P. P. Inline function expansion for compiling realistic C programs. In Proceedings of the ACM SIGPLAN 1989 Conference on Programming Language Design and Implementation (June 1989), pp. 246--257. Google Scholar
Digital Library
- Hwu, W. W., Mahlke, S. A., Chen, W. Y., Chang, P. P., Warter, N. J., Bringmann, R. A., Ouellette, R. G., Hank, R. E., Kiyohara, T., Haab, G. E., Holm, J. G., and Lavery, D. M. The superblock: An effective technique for VLIW and superscalar compilation. The Journal of Supercomputing 7 , 1 (January 1993), 229--248. Google Scholar
Digital Library
- Knoop, J., and Steffen, B. The interprocedural coincidence theorem. In Proceedings of the 4th International Conference on Compiler Construction (Paderborn, Germany, October 1992), pp. 125--140. Google Scholar
Digital Library
- Mahlke, S. A., Lin, D. C., Chen, W. Y., Hank, R. E., Bringmann, R. A., and Hwu, W. W. Effective compiler support for predicated execution using the hyperblock. In Proceedings of the 25th International Symposium on Microarchitecture (December 1992), pp. 45--54. Google Scholar
Digital Library
- Myers, E. W. A precise inter-procedural data flow algorithm. In Proceedings of the 8th ACM symposium on Principles of programming languages (Jan. 1981), pp. 219--230. Google Scholar
Digital Library
- Nystrom, E. M., Kim, H.-S., and Hwu, W.-M. Bottom-up and top-down context-sensitive summary-based pointer analysis. In Proceedings of the 11th Static Analysis Symposium (August 2004).Google Scholar
Cross Ref
- Reps, T., Horwitz, S., and Sagiv, M. Precise interprocedural dataflow analysis via graph reachability. In Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (June 1995), pp. 49--61. Google Scholar
Digital Library
- Santhanam, V., and Odnert, D. Register allocation across procedure and module boundaries. In Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation (June 1990), pp. 28--39. Google Scholar
Digital Library
- Sharir, M., and Pnueli, A. Two approaches to interprocedural data flow analysis. In Program Flow Analysis: Theory and Applications, S. Muchnick and N. Jones, Eds. Prentice-Hall, Englewood Cliffs, NJ, 1981, pp. 189--233.Google Scholar
- Suganuma, T., Yasue, T., and Nakatani, T. A region-based compilation technique for a java just-in-time compiler. In Proceedings of the ACM SIGPLAN 2003 conference on Programming Language Design and Implementation (June 2003), pp. 312--323. Google Scholar
Digital Library
- Way, T., Breech, B., and Pollock, L. Region formation analysis with demand-driven inlining for region-based optimization. In Proceedings of the 2000 International Conference on Parallel Architectures and Compilation Techniques (May 2000), p. 24. Google Scholar
Digital Library
Index Terms
A framework for unrestricted whole-program optimization
Recommendations
A framework for unrestricted whole-program optimization
Proceedings of the 2006 PLDI ConferenceProcedures have long been the basic units of compilation in conventional optimization frameworks. However, procedures are typically formed to serve software engineering rather than optimization goals, arbitrarily constraining code transformations. ...
Interprocedural pointer alias analysis
We present practical approximation methods for computing and representing interprocedural aliases for a program written in a language that includes pointers, reference parameters, and recursion. We present the following contributions: (1) a framework ...
Thresher: precise refutations for heap reachability
PLDI '13We present a precise, path-sensitive static analysis for reasoning about heap reachability, that is, whether an object can be reached from another variable or object via pointer dereferences. Precise reachability information is useful for a number of ...







Comments