ABSTRACT
Path profiles provide a more accurate characterization of a program's dynamic behavior than basic block or edge profiles, but are relatively more expensive to collect. This has limited their use in practice despite demonstrations of their advantages over edge profiles for a wide variety of applications.We present a new algorithm called preferential path profiling (PPP), that reduces the overhead of path profiling. PPP leverages the observation that most consumers of path profiles are only interested in a subset of all program paths. PPP achieves low overhead by separating interesting paths from other paths and assigning a set of unique and compact numbers to these interesting paths. We draw a parallel between arithmetic coding and path numbering, and use this connection to prove an optimality result for the compactness of path numbering produced by PPP. This compact path numbering enables our PPP implementation to record path information in an array instead of a hash table. Our experimental results indicate that PPP reduces the runtime overhead of profiling paths exercised by the largest (ref) inputs of the SPEC CPU2000 benchmarks from 50% on average (maximum of 132%) to 15% on average (maximum of 26%) as compared to a state-of-the-art path profiler.
- G. Ammons and J. R. Larus. Improving data-flow analysis with path profiles. In ACM SIGPLAN Symposium on Programming Language Design and Implementation (PLDI), pages 72--84, 1998. Google Scholar
Digital Library
- T. Apiwattanapong and M. J. Harrold. Selective path profiling. In Workshop. on Program Analysis for Software Tools and Engineering (PASTE), pages 35--42, 2002. Google Scholar
Digital Library
- T. Ball and J. R. Larus. Efficient path profiling. In International Symposium on Microarchitecture (MICRO), pages 46--57, 1996. Google Scholar
Digital Library
- T. Ball and J. R. Larus. Programs follow paths. Technical Report MSR-TR-99-01, Microsoft Research, 1999.Google Scholar
- T. Ball, P. Mataga, and S. Sagiv. Edge profiling versus path profiling: The showdown. In ACM SIGPLAN Symposium on Principles of Programming Languages(POPL), pages 134--148, 1998. Google Scholar
Digital Library
- M. D. Bond and K. S. McKinley. Practical path profiling for dynamic optimizers. In International Symposium on Code Generation and Optimization (CGO), pages 205--216, 2005. Google Scholar
Digital Library
- T. M. Cover and J. A. Thomas. Elements of Information Theory. John Wiley & Sons, Inc., N. Y., 1991. Google Scholar
Digital Library
- R. Joshi, M. D. Bond, and C. B. Zilles. Targeted path profiling: Lower overhead path profiling for staged dynamic optimization systems. In International Symposium on Code Generation and Optimization (CGO), pages 239--250, 2004. Google Scholar
Digital Library
- A. Kolmogorov. Three approaches to the quantitative definition of information. Prob. Peredach Inform, 1(1):3--11, 1965.Google Scholar
- K. S. McKinley, J. Burrill, M. D. Bond, D. Burger, B. Cahoon, J. Gibson, J. E. B. Moss, A. Smith, Z. Wang, and C. Weems. The Scale compiler. http://ali-www.cs.umass.edu/Scale, 2005.Google Scholar
- D. Melski and T. W. Reps. Interprocedural path profiling. In Proceedings of the 8th International Conference on Compiler Construction (CC), pages 47--62, 1999. Google Scholar
Digital Library
- E. Perelman, T. M. Chilimbi, and B. Calder. Variational path profiling. In Parallel Architectures and Compilation Techniques '05 (PACT), pages 7--16, 2005. Google Scholar
Digital Library
- J. Rissanen and G. G. Langdon. Arithmetic coding. IBM J. Res. Develop., 23(2):149--162, 1979.Google Scholar
Digital Library
- S. Tallam, X. Zhang, and R. Gupta. Extending path profiling across loop backedges and procedure boundaries. In International Symposium on Code Generation and Optimization (CGO), pages 251--264, 2004. Google Scholar
Digital Library
- I. H. Witten, R. M. Neal, and J. G. Cleary. Arithmetic coding for data compression. Communications of the ACM, 30(6):520--540, 1987. Google Scholar
Digital Library
Index Terms
Preferential path profiling: compactly numbering interesting paths
Recommendations
Edge profiling versus path profiling: the showdown
POPL '98: Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesEdge profiles are the traditional control flow profile of choice for profile-directed compilation. They have been the basis of path-based optimizations that select "hot" paths, even though edge profiles contain strictly less information than path ...
Preferential path profiling: compactly numbering interesting paths
Proceedings of the 2007 POPL ConferencePath profiles provide a more accurate characterization of a program's dynamic behavior than basic block or edge profiles, but are relatively more expensive to collect. This has limited their use in practice despite demonstrations of their advantages ...
Selective path profiling
Recording dynamic information for only a subset of program entities can reduce monitoring overhead and can facilitate efficient monitoring of deployed software. Program entities, such as statements, can be monitored using probes that track the execution ...






Comments