Scalable cross-module optimization

  • Authors:
  • Andrew Ayers;Stuart de Jong;John Peyton;Richard Schooler

  • Affiliations:
  • Hewlett-Packard Massachusetts Language Laboratory, 300 Apollo Drive, Chelmsford, MA;Hewlett-Packard Massachusetts Language Laboratory, 300 Apollo Drive, Chelmsford, MA;Hewlett-Packard Massachusetts Language Laboratory, 300 Apollo Drive, Chelmsford, MA;Hewlett-Packard Massachusetts Language Laboratory, 300 Apollo Drive, Chelmsford, MA

  • Venue:
  • PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

Large applications are typically partitioned into separately compiled modules. Large performance gains in these applications are available by optimizing across module boundaries. One barrier to applying crossmodule optimization (CMO) to large applications is the potentially enormous amount of time and space consumed by the optimization process.We describe a framework for scalable CMO that provides large gains in performance on applications that contain millions of lines of code. Two major techniques are described. First, careful management of in-memory data structures results in sub-linear memory occupancy when compared to the number of lines of code being optimized. Second, profile data is used to focus optimization effort on the performance-critical portions of applications. We also present practical issues that arise in deploying this framework in a production environment. These issues include debuggability and compatibility with existing development tools, such as make. Our framework is deployed in Hewlett-Packard's (HP) UNIX compiler products and speeds up shipped independent software vendors' applications by as much as 71%.