Efficient path profiling
Top Cited Papers
- 24 December 2002
- proceedings article
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
A path profile determines how many times each acyclic path in a routine executes. This type of profiling subsumes the more common basic block and edge profiling, which only approximate path frequencies. Path profiles have many potential uses in program performance tuning, profile-directed compilation, and software test coverage. This paper describes a new algorithm for path profiling. This simple, fast algorithm selects and places profile instrumentation to minimize run-time overhead. Instrumented programs run with overhead comparable to the best previous profiling techniques. On the SPEC95 benchmarks, path profiling overhead averaged 31%, as compared to 16% for efficient edge profiling. Path profiling also identifies longer paths than a previous technique, which predicted paths from edge profiles (average of 88, versus 34 instructions). Moreover, profiling shows that the SPEC95 train input datasets covered most of the paths executed in the ref datasets.Keywords
This publication has 8 references indexed in Scilit:
- Trace Selection For Compiling Large C Application Programs To MicrocodePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- EELPublished by Association for Computing Machinery (ACM) ,1995
- Improving the accuracy of static branch prediction using branch correlationPublished by Association for Computing Machinery (ACM) ,1994
- Efficiently counting program events with support for on-line queriesACM Transactions on Programming Languages and Systems, 1994
- Optimally profiling and tracing programsACM Transactions on Programming Languages and Systems, 1994
- Branch prediction for freePublished by Association for Computing Machinery (ACM) ,1993
- Predicting conditional branch directions from previous runs of a programPublished by Association for Computing Machinery (ACM) ,1992
- Trace Scheduling: A Technique for Global Microcode CompactionIEEE Transactions on Computers, 1981