The Morph system provides a framework for automatic collection and management of profile information and application of profile-driven optimizations. In this paper, we focus on the operating system support that is required to collect and manage profile information on an end-user's workstation in an automatic, continuous, and transparent manner. Our implementation for a Digital Alpha machine running Digital UNIX 4.0 achieves run-time overheads of less than 0.3 % during profile collection. Through the application of three code layout optimizations, we further show that Morph can use statistical profiles to improve application performance. With appropriate system support, automatic profiling and optimization is both possible and effective.
|
664
|
ATOM: A system for building customized program analysis tools
– Srivastava, Eustace
- 1994
|
|
560
|
Trace scheduling: A technique for global microcode compaction
– Fisher
- 1981
|
|
487
|
The cache performance and optimizations of blocked algorithms
– LAM, ROTHBERG, et al.
- 1991
|
|
247
|
Profile guided code positioning
– Pettis, Hansen
- 1990
|
|
164
|
Continuous profiling: Where have all the cycles gone
– Anderson, Berc, et al.
- 1997
|
|
147
|
A practical system for intermodule code optimization at link-time
– Srivastava, Wall
- 1992
|
|
146
|
DAISY: Dynamic compilation for 100% architectural compatibility
– Ebcio˘glu, Altman
- 1997
|
|
141
|
The Impact of Operating System Structure on Memory System Performance
– Chen, Bershad
- 1993
|
|
137
|
Tracing with Pixie
– Smith
- 1991
|
|
102
|
Slim Binaries
– Franz, Kistler
- 1997
|
|
93
|
Avoiding conflict misses dynamically in large direct-mapped caches
– Bershad, Lee, et al.
- 1994
|
|
89
|
Systems for Late Code Modification
– Wall
- 1991
|
|
65
|
Efficient and Language-Independent Mobile Programs
– Adl-Tabatabai, Langdale, et al.
- 1996
|
|
61
|
Extending SUIF for machinedependent optimizations
– Smith
- 1996
|
|
45
|
The Mahler Experience: Using an Intermediate Language as the
– Wall, Powell
- 1987
|
|
36
|
Accurate and Practical Profile-Driven Compilation Using the Profile Buffer
– CONTE, MENEZES, et al.
- 1996
|
|
34
|
Near-optimal intraprocedural branch alignment
– Young, Johnson, et al.
- 1997
|
|
32
|
Interprocedural dataflow analysis in an executable optimizer
– Goodwin
- 1997
|
|
28
|
placement algorithms for large real-indexed caches
– Kessler, Hill, et al.
- 1992
|
|
18
|
The TLB slice – A low-cost high-speed address translation mechanism
– Taylor, Davies, et al.
- 1990
|
|
13
|
Page placement algorithms for large real-indexed caches
– Kessler, Hill
- 1992
|
|
10
|
Hot Cold Optimization of Large Windows NT Applications
– Cohn, Lowney
- 1996
|
|
9
|
Omniware: a Universal Substrate for Mobile Code
– Software
- 1995
|
|
8
|
Predicting conditional branches from previous runs of a program
– Fisher, Freudenberger
- 1992
|
|
4
|
Etch, an Instrumentation and Optimization tool for Win32 Programs
– Romer, Voelker, et al.
- 1997
|
|
3
|
DIGITAL FX!32 - Running 32-Bit x86 Applications on Alpha NT." To appear
– Chernoff, Hookway
- 1997
|
|
3
|
IA-64 and Merced---What and Why
– Christy
- 1996
|
|
3
|
Bringing Parallelism Out of the Closet
– Gwennap
- 1996
|
|
3
|
Optimization with Statistical Profiles
– Gloy, Wang, et al.
- 1997
|
|
3
|
EEL: Machine Independent Executable
– Larus, Schnarr
- 1995
|
|
2
|
Compiler Group, "SUIF: A Parallelizing and Optimizing Research Compiler
– SUIF
- 1994
|
|
1
|
FX!32." Work-in-progress talk at the
– Rubin
- 1996
|