skip to main content
10.1145/1190216.1190268acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

Preferential path profiling: compactly numbering interesting paths

Published:17 January 2007Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. Ball and J. R. Larus. Efficient path profiling. In International Symposium on Microarchitecture (MICRO), pages 46--57, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T. Ball and J. R. Larus. Programs follow paths. Technical Report MSR-TR-99-01, Microsoft Research, 1999.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. M. Cover and J. A. Thomas. Elements of Information Theory. John Wiley & Sons, Inc., N. Y., 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. Kolmogorov. Three approaches to the quantitative definition of information. Prob. Peredach Inform, 1(1):3--11, 1965.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. E. Perelman, T. M. Chilimbi, and B. Calder. Variational path profiling. In Parallel Architectures and Compilation Techniques '05 (PACT), pages 7--16, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Rissanen and G. G. Langdon. Arithmetic coding. IBM J. Res. Develop., 23(2):149--162, 1979.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Preferential path profiling: compactly numbering interesting paths

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!