skip to main content
10.1145/1133981.1133989acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

A framework for unrestricted whole-program optimization

Published:11 June 2006Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. Eranian, S. Perfmon: L inux performance monitoring for IA-64. http://www.hpl.hp.com/research/linux/perfmon/, 2003.Google ScholarGoogle Scholar
  8. Goubault, J. Generalized boxings, congruences and partial inlining. In First International Static Analysis Symposium (Namur, Belgium, September 1994).Google ScholarGoogle ScholarCross RefCross Ref
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. Havanki, W. A. Treegion scheduling for VLIW processors. Master's thesis, Department of Computer Science, North Carolina State University, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarCross RefCross Ref
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A framework for unrestricted whole-program optimization

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!