Download:
|
by Youtao Zhang, Rajiv Gupta
in Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation, Snowbird
http://www.cs.arizona.edu/people/gupta/research/Publications/Comp/pldi01.ps
Add To MetaCart
Abstract:
A whole program path (WPP) is a complete control
ow trace of a program's execution. Recently Larus [18] showed that although WPP is expected to be very large (100's of MBytes), it can be greatly compressed (to 10's of MBytes) and therefore saved for future analysis. While the compression algorithm proposed by Larus is highly eective, the compression is accompanied with a loss in the ease with which subsets of information can be accessed. In particular, path traces pertaining to a particular function cannot generally be obtained without examining the entire compressed WPP representation. To solve this problem we advocate the application of compaction techniques aimed at providing easy access to path traces on a per function basis. We present a WPP compaction algorithm in which the WPP is broken into path traces corresponding to individual function calls. All of the path traces for a given function are stored together as a block. Ability to construct the complete WPP from individual path traces is preserved by maintaining a dynamic call graph. The compaction is achieved by eliminating redundant path traces that result from dierent calls to a function and by replacing a sequence of static basic block ids that correspond to a dynamic basic block by a single id. We transform a compacted WPP representation into a timestamped WPP (TWPP) representation in which the path traces are organized from the perspective of dynamic basic blocks. TWPP representation also oers additional opportunities for compaction. Experiments show that our algorithm compacts the WPPs by factors ranging from 7 to 64. At the same time information is organized in a highly accessible form which speeds up the responses to queries requesting the path traces of a given function by over 3 orders of magnitude.
Citations
|
908
|
Program slicing
– Weiser
- 1984
|
|
560
|
Trace scheduling: A technique for global microcode compaction
– Fisher
- 1981
|
|
481
|
Compression of individual sequences via variable-rate coding
– Ziv, Lempel
- 1978
|
|
325
|
A Technique for High-Performance Data Compression
– Welch
- 1984
|
|
234
|
Precise interprocedural dataflow analysis via graph reachability
– Reps, Sagiv, et al.
- 1995
|
|
214
|
Dynamic program slicing
– Agrawal, Horgan
- 1990
|
|
161
|
Dynamic program slicing
– Korel, Laski
- 1988
|
|
102
|
Optimal code motion: Theory and practice
– Knoop, Rüthing, et al.
- 1994
|
|
92
|
Whole program paths
– Larus
- 1999
|
|
86
|
Eliminating array bounds checks on demand
– Bodik, Gupta, et al.
- 2002
|
|
68
|
Demand-drivencomputation of interprocedural data flow
– Duesterwald, Gupta, et al.
- 1995
|
|
65
|
Improving data-flow analysis with path profiles
– Ammons, Larus
- 1998
|
|
53
|
PLDI’98, Complete removal of redundant expressions
– Bodik, Gupta, et al.
- 1998
|
|
36
|
Dynamo: A transparent runtime optimization system
– Bala, Duesterwald, et al.
- 2000
|
|
34
|
Data flow frequency analysis
– Ramalingam
- 1996
|
|
32
|
PLDI’99, Load-reuse analysis: Design and evaluation
– Bodik, Gupta, et al.
- 1998
|
|
23
|
A Universal Algorithm for Data Compression
– Ziv, Lempel
|
|
20
|
Lineartime, incremental hierarchy inference for compression
– Nevill-Manning, Witten
- 1997
|
|
13
|
Ecient Path Pro
– Ball, Larus
- 1996
|
|
13
|
Dynamic Currency Determination in Optimized Programs
– Dhamdhere, Sankaranarayanan
- 1998
|
|
9
|
Demand-Driven Data Flow Analysis for Communication Optimization
– Yuan, Gupta, et al.
- 1997
|
|
4
|
Structured data analysis for arrays and its use in an optimizing compiler
– Gross, Steenkiste
- 1990
|
|
4
|
Property Oriented Expansion
– Steen
- 1996
|
|
2
|
Path Pro Guided Partial Dead Code Elimination using Predication
– Gupta, Berson, et al.
- 1997
|
|
2
|
Path Pro Guided Partial Redundancy Elimination Using Speculation
– Gupta, Berson, et al.
- 1998
|
|
2
|
Resource-Sensitive Pro Data Flow Analysis for Code Optimization
– Gupta, Berson, et al.
- 1997
|
|
1
|
Edge Pro Versus Path Pro the Showdown
– Ball, Mataga, et al.
- 1998
|
|
1
|
Better Global Scheduling Using Path Pro
– Smith
- 1997
|