Download:
|
by Saumya Debray, Robert Muth, Scott Watterson
Proc. 8th. International Conference on Compiler Construction (CC'99
ftp://ftp.cs.arizona.edu/reports/1998/TR98-16.ps
Add To MetaCart
Abstract:
Optimizing compilers typically limit the scope of their analyses and optimizations to individual modules. This has two drawbacks: first, library code cannot be optimized together with their callers, which implies that reusing code through libraries incurs a penalty; and second, the results of analysis and optimization cannot be propagated from an application module written in one language to a module written in another. A possible solution is to carry out (additional) program optimization at link time. This paper describes our experiences with such optimization using two different optimizing Scheme compilers, and several benchmark programs, via alto, a link-time optimizer we have developed for the DEC Alpha architecture. Experiments indicate that significant performance improvements are possible via link-time optimization even when the input programs have already been subjected to high levels of compile-time optimization.
Citations
|
370
|
Efficient Context-Sensitive Pointer Analysis for C Programs
– Wilson, Lam
- 1995
|
|
178
|
Global Register Allocation at Link Time
– Wall
- 1986
|
|
151
|
A Practical System for Intermodule Code Optimization at Link-Time
– Srivastava, Wall
- 1993
|
|
126
|
Reducing indirect function call overhead in C++ programs
– Calder, Grunwald
- 1994
|
|
94
|
Instrumentation and Optimization of Win32/Intel Executables Using Etch
– Romer, Voelker, et al.
- 1997
|
|
91
|
Link-time optimization of address calculation on a 64-bit architecture
– Srivastava
- 1994
|
|
87
|
Simple and effective link-time optimization of Modula-3 programs
– Fernandez
- 1995
|
|
84
|
Profile-Guided Receiver Class Prediction
– Grove, Dean, et al.
- 1995
|
|
72
|
Minimizing register usage penalty at procedure calls
– Chow
- 1988
|
|
55
|
Global tagging optimization by type inference
– Henglein
- 1992
|
|
50
|
Flow-directed inlining
– Jagannathan, Wright
- 1996
|
|
44
|
Profile-guided code positioning
– Pettis, Hansen
- 1990
|
|
38
|
Bigloo: a portable and optimizing compiler for strict functional languages
– Serrano, Weis
- 1995
|
|
29
|
Register allocation across procedure and module boundaries
– Santhanam, Odnert
- 1990
|
|
23
|
Lambda-Splitting: A Higher-Order Approach to Cross-Module Optimizations
– Blume, Appel
- 1997
|
|
21
|
The effectiveness of flow analysis for inlining
– Ashley
- 1997
|
|
6
|
The Implementation of Tags and Run-Time Type Checking
– Steenkiste
- 1991
|
|
4
|
et al., "The GEM Optimizing Compiler System
– Blickstein
- 1992
|
|
2
|
Dybvig, "Fast and Effective Procedure Inlining
– Waddell, K
- 1997
|