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
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.