Scalable Cross-Module Optimization

6Citations
Citations of this article
8Readers
Mendeley users who have this article in their library.

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 cross-module 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%.

Cite

CITATION STYLE

APA

Ayers, A., De Jong, S., Peyton, J., & Schoole, R. (1998). Scalable Cross-Module Optimization. SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 33(5), 301–312. https://doi.org/10.1145/277652.277745

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free