Timestamped whole program path representation and its applications
- 1 May 2001
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 36 (5) , 180-190
- https://doi.org/10.1145/378795.378835
Abstract
A whole program path (WPP) is a complete control flow 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 effective, 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 in to 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 different 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 offers 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.Keywords
This publication has 22 references indexed in Scilit:
- DynamoPublished by Association for Computing Machinery (ACM) ,2000
- Dynamic currency determination in optimized programsACM Transactions on Programming Languages and Systems, 1998
- Improving data-flow analysis with path profilesPublished by Association for Computing Machinery (ACM) ,1998
- Complete removal of redundant expressionsPublished by Association for Computing Machinery (ACM) ,1998
- Demand-Driven Data Flow Analysis for Communication OptimizationParallel Processing Letters, 1997
- A practical framework for demand-driven interprocedural data flow analysisACM Transactions on Programming Languages and Systems, 1997
- Structured dataflow analysis for arrays and its use in an optimizing compilerSoftware: Practice and Experience, 1990
- Dynamic program slicingInformation Processing Letters, 1988
- Compression of individual sequences via variable-rate codingIEEE Transactions on Information Theory, 1978
- A universal algorithm for sequential data compressionIEEE Transactions on Information Theory, 1977