Whole execution traces and their applications
- 1 September 2005
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Architecture and Code Optimization
- Vol. 2 (3) , 301-334
- https://doi.org/10.1145/1089008.1089012
Abstract
Different types of program profiles (control flow, value, address, and dependence) have been collected and extensively studied by researchers to identify program characteristics that can then be exploited to develop more effective compilers and architectures. Because of the large amounts of profile data produced by realistic program runs, most work has focused on separately collecting and compressing different types of profiles. In this paper, we present a unified representation of profiles called Whole Execution Trace (WET), which includes the complete information contained in each of the above types of traces. Thus, WETs provide a basis for a next-generation software tool that will enable mining of program profiles to identify program characteristics that require understanding of relationships among various types of profiles. The key features of our WET representation are: WET is constructed by labeling a static program representation with profile information such that relevant and related profile information can be directly accessed by analysis algorithms as they traverse the representation; a highly effective two-tier strategy is used to significantly compress the WET; and compression techniques are designed such that they minimally affect the ability to rapidly traverse WET for extracting subsets of information corresponding to individual profile types as well as a combination of profile types. Our experimentation shows that on, an average, execution traces resulting from execution of 647 million statements can be stored in 331 megabytes of storage after compression. The compression factors range from 16 to 83. Moreover the rates at which different types of profiles can be individually or simultaneously extracted are high. We present two applications of WETs, dynamic program slicing and dynamic version matching, which make effective use of multiple kinds of profile information contained in WETs.Keywords
This publication has 5 references indexed in Scilit:
- Frequent value locality and its applicationsACM Transactions on Embedded Computing Systems, 2002
- MinneSPEC: A New SPEC Benchmark Workload for Simulation-Based Computer Architecture ResearchIEEE Computer Architecture Letters, 2002
- Experimental results from dynamic slicing of C programsACM Transactions on Programming Languages and Systems, 1995
- Debugging with dynamic slicing and backtrackingSoftware: Practice and Experience, 1993
- Dynamic program slicingInformation Processing Letters, 1988