1998
DOI: 10.1145/277652.277745
|View full text |Cite
|
Sign up to set email alerts
|

Scalable cross-module optimization

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 descri… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2001
2001
2010
2010

Publication Types

Select...
5
1

Relationship

0
6

Authors

Journals

citations
Cited by 8 publications
(5 citation statements)
references
References 13 publications
0
5
0
Order By: Relevance
“…Link-time register allocation, aimed at allowing global variables to be kept in registers and reducing register saves and restores at inter-module calls, is discussed by Santhanam and Odnert [27] and Wall [15]. Ayers et al [30] describe a production-quality link-time optimizer for Hewlett-Packard systems running HP-UX, which is distinguished by its ability to perform whole-program optimizations on very large programs, by virtue of the careful attention paid to memory management issues. Ayers et al [30] describe a production-quality link-time optimizer for Hewlett-Packard systems running HP-UX, which is distinguished by its ability to perform whole-program optimizations on very large programs, by virtue of the careful attention paid to memory management issues.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Link-time register allocation, aimed at allowing global variables to be kept in registers and reducing register saves and restores at inter-module calls, is discussed by Santhanam and Odnert [27] and Wall [15]. Ayers et al [30] describe a production-quality link-time optimizer for Hewlett-Packard systems running HP-UX, which is distinguished by its ability to perform whole-program optimizations on very large programs, by virtue of the careful attention paid to memory management issues. Ayers et al [30] describe a production-quality link-time optimizer for Hewlett-Packard systems running HP-UX, which is distinguished by its ability to perform whole-program optimizations on very large programs, by virtue of the careful attention paid to memory management issues.…”
Section: Related Workmentioning
confidence: 99%
“…The Zuse Translation System [28] and the mld link-time optimizer [29] are aimed at reducing the cost of abstraction in object-oriented languages. These works rely on specially engineered compilers that produce either object files containing special annotations to assist the link-time optimizer [15], or an intermediate representation of the program (together with semantic information about it) that is subsequently optimized and translated to executable code by the linker [27][28][29][30]. These works rely on specially engineered compilers that produce either object files containing special annotations to assist the link-time optimizer [15], or an intermediate representation of the program (together with semantic information about it) that is subsequently optimized and translated to executable code by the linker [27][28][29][30].…”
Section: Related Workmentioning
confidence: 99%
“…To do this efficiently, we exploit the ability to store IL alongside native executable code in the same binary object file or library. This strategy of retaining the IL generated by a traditional static compiler to support future optimizations is similar to strategies used to support linktime cross-module inlining optimizations in several commercial compilers, include those from HP [2] and IBM [20]. It is also reminiscent of the strategy for supporting "life-long" program optimization used in LLVM [21].…”
Section: The W-code Conversion Enginementioning
confidence: 99%
“…When the algorithm has finished, blocks and edges not in REACHABLE are unreachable. 2 Blocks are also kept in TOUCHED (see section 2.8). Initialize the reachable dominator tree…”
Section: Optimistic Value Numberingmentioning
confidence: 99%
“…We have implemented the practical algorithm in the high level optimizer (HLO) [2] component of an internal version of the PA-RISC C compiler on HP-UX. HLO performs whole program, inter-procedural, parallelizing and scalar optimizations on a high level SSA form intermediate representation.…”
Section: Measurementsmentioning
confidence: 99%