[go: up one dir, main page]

skip to main content
10.1145/301618.301678acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free access

Whole program paths

Published: 01 May 1999 Publication History

Abstract

Whole program paths (WPP) are a new approach to capturing and representing a program's dynamic---actually executed---control flow. Unlike other path profiling techniques, which record intraprocedural or acyclic paths, WPPs produce a single, compact description of a program's entire control flow, including loop iteration and interprocedural paths.This paper explains how to collect and represent WPPs. It also shows how to use WPPs to find hot subpaths, which are the heavily executed sequences of code that should be the focus of performance tuning and compiler optimization.

References

[1]
G. Ammons, T. Ball, and J. R. Larus, "Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling," in Proceedings of the SIGPLAN '97 Conference on Programming Language Design and Implementation. Las Vegas, NV, 1997, pp. 85-96.
[2]
G. Ammons and J. R. Larus, "Improving Data-flow Analysis with Path Profiles," in Proceedings of the SiGPLAN '98 Conference on Programming Language Design and Implementation. Montreal, Canada, 1998, pp. 72-84.
[3]
S. Andler, "Predicate Path Expressions," in Proceedings of the Sixth Annual A CM Symposium on Principles of Programming Languages. San Antonio, Texas, 1979, pp. 226-236.
[4]
B. S. Baker, "Parametefized Duplication in Strings: Algorithms and an Application to Software Maintenance," SIAM Journal of Computing, vol. 26, pp. 1343-I 362, 1995.
[5]
V. Bala, "Low Overhead Path Profiling," Hewlett Packard Labs 1996.
[6]
T. Ball and J. R. Larus, "Efficient Path Profiling," in Proceedings of the 29th Annual iEEEdACM International Symposium on Microarchitecture. Paris, France, 1996, pp. 46-57.
[7]
T. Ball, P. Mataga, and M. Sagiv, "Edge Profiling Versus Path Profiling: the Showdown," in Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. San Diego, CA, 1998, pp. 134- 148.
[8]
R. Bodik, R. Gupta, and M. L. Sofia, "Refining Data Flow Information using Infeasible Paths," in Proceedings of the A CM SIGSOFT Fifth Symposium on the Foundations of Software Engineering. Zurich, Switzerland, 1997.
[9]
I.-C. K. Chen, J. T. Coffey, and T. N. Mudge, "Analysis of Branch Prediction via Data Compression," in Proceedings of the Seventh International Conference on Architectural Support for Programming Languages and Operating Systems. Cambridge, MA, 1996, pp. 128-137.
[10]
E. N. Clarke, E. A. Emerson, and A. P. Sistla, "Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications," A CM Transactions on Programming Languages and Systems, vol. 8, pp. 244-263, 1986.
[11]
J. A. Fisher, "Trace Scheduling: A Technique for Global Microeode Compaction," IEEE Transactions on Computers, vol. C-30, pp. 478-490, 1981.
[12]
J. A. Fisher, J. R. Ellis, J. C. Ruttenber g, and A. Nicolau, "Parallel Processing: A Smart Compiler and a Dumb Machine," in Proceedings of the A CM SiGPLAN '84 Symposium on Compiler Construction. Montreal, Canada, 1984, pp. 37-47.
[13]
J. Gray, "The Benchmark Handbook for Database and Transaction Processing Systems," in The Morgan Kaufmann Series in Data Management Systems, J. Gray, Ed., second ed. San Francisco: Morgan Kaufmann, 1993.
[14]
R. Gupta, D. A. Berson, and J. Z. Fang, "Path Profile Guided Partial Dead Code Elimination Using Predication," in Proceedings of the International Conference on Parallel Architecture and Compilation Techniques (PACT). San Francisco, CA, 1997.
[15]
Q. Jacobson, E. Rotenberg, and J. E. Smith, "Path-Based Next Trace Prediction," in Proceedings of the 30th Annual IEEE/ACM International Symposium on Microarchitecture. Research Triangle Park, NC, 1997.
[16]
J. R. Larus, "Abstract Execution: A Technique for Efficiently Tracing Programs," Software--Practice and Experience, vol. 20, pp. 1241-1258, 1990.
[17]
J. R. Larus and E. Schnarr, "EEL: Machine-independent Executable Editing," in Proceedings of the SiGPLAN '95 Conference on Programming Language Design and Implementation. La Jolla, CA, 1995, pp. 291-300.
[18]
D. Melski and T. Reps, "Interprocedural Path Profiling," Computer Sciences Department, University of Wisconsin- Madison, Technical Report TR- 1382, September 1998.
[19]
D. Melski and T. Reps, "Interprocedural Path Profiling," in Proceedings of CC '99: 8th International Conference on Compiler Construction. Amsterdam, The Netherlands, 1999.
[20]
D. Mosberger and L. L. Peterson, "Making Paths Explicit in the Scout Operating System," in Proceedings of the Second USENIX Symposium on Operating Systems Design and Implementation (OSDI). Seattle, WA, 1996, pp. 153-167.
[21]
C. G. Nevill-Manning and I. H. Witten, "Compression and explanation using hierarchical grammars," The Computer Journal, vol. 40, pp. 103-116, 1997.
[22]
C. G. Nevill-Manning and I. H. Witten, "Linear-time, incremental hierarchy inference for compression," in Proceedings of the Data Compression Conference (DCC '97). Snowbird, UT: iEEE Computer Society, 1997, pp. 3-1 I.
[23]
A. R. Pleszkun, "Techniques for Compressing Program Address Traces," in Proceedings of the 27th Annual IEEE/A CM International Symposium on Mi croarchitecture, 1994, pp. 32-40.
[24]
C. Pu, T. Autrey, A. Black, C. Consel, C. Cowan, J. Inouye, L. Kethana, J. Walpole, and K. Zhang, "Optimistic Incremental Specialization: Streamlining a Commercial Operating System," in Proceedings of the Fifteenth A CM Symposium on Operating System Principles. Copper Mountaint Resort, CO, 1995, pp. 314-324.
[25]
E. Rotenberg, S. Bennett, and J. E. Smith, "Trace Cache: a Low Latency Approach to High Bandwidth Instruction Fetching," in Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. Paris, France, ! 996, pp. 24-34.
[26]
E. Rotenberg, Q. Jacobson, Y. Sazeides, and J. Smith, "Trace Processors," in Proceedings of the 30th Annual iEEE/A CM International Symposium on Microarchitecture. Research Triangle Park, NC, 1997, pp. 138-148.
[27]
A. Srivastava and A. Eustace, "ATOM A System for Building Customized Program Analysis Tools," in Proceedings of the SIGPLAN '94 Conference on Programming Language Design and Implementation. Orlando, FL, 1994, pp. 196-205.
[28]
C. Young, N. Gloy, and M. D. Smith, "A Comparative Analysis of Schemes for Correlated Branch Prediction," in Proceedings of the 22nd Annual International Symposium on Computer Architecture, 1995, pp. 276-286.

Cited By

View all
  • (2023)Whole-Program Control-Flow Path AttestationProceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security10.1145/3576915.3616687(2680-2694)Online publication date: 15-Nov-2023
  • (2023)Slicing‐Based Techniques for Software Fault LocalizationHandbook of Software Fault Localization10.1002/9781119880929.ch3(135-200)Online publication date: 21-Apr-2023
  • (2022)Understanding performance problems in deep learning systemsProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549123(357-369)Online publication date: 7-Nov-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '99: Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
May 1999
304 pages
ISBN:1581130945
DOI:10.1145/301618
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 1999

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. data compression
  2. dynamic program measurement
  3. path profiling
  4. program control flow
  5. program tracing

Qualifiers

  • Article

Conference

PLDI99

Acceptance Rates

PLDI '99 Paper Acceptance Rate 26 of 130 submissions, 20%;
Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)221
  • Downloads (Last 6 weeks)40
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Whole-Program Control-Flow Path AttestationProceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security10.1145/3576915.3616687(2680-2694)Online publication date: 15-Nov-2023
  • (2023)Slicing‐Based Techniques for Software Fault LocalizationHandbook of Software Fault Localization10.1002/9781119880929.ch3(135-200)Online publication date: 21-Apr-2023
  • (2022)Understanding performance problems in deep learning systemsProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549123(357-369)Online publication date: 7-Nov-2022
  • (2022)POCLib: A High-Performance Framework for Enabling Near Orthogonal Processing on CompressionIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2021.309323433:2(459-475)Online publication date: 1-Feb-2022
  • (2021)Representing Integer Sequences Using Piecewise-Affine LoopsMathematics10.3390/math91923689:19(2368)Online publication date: 24-Sep-2021
  • (2021)Checking LTL[F,G,X] on compressed traces in polynomial timeProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468557(131-143)Online publication date: 20-Aug-2021
  • (2021)JPortal: precise and efficient control-flow tracing for JVM programs with Intel processor traceProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454096(1080-1094)Online publication date: 19-Jun-2021
  • (2021)OPE: Transforming Programs with Clean and Precise Separation of Tested Intraprocedural Program Paths with Path Profiling2021 IEEE 21st International Conference on Software Quality, Reliability and Security (QRS)10.1109/QRS54544.2021.00039(279-290)Online publication date: Dec-2021
  • (2021)Jyane: Detecting Reentrancy vulnerabilities based on path profiling method2021 IEEE 27th International Conference on Parallel and Distributed Systems (ICPADS)10.1109/ICPADS53394.2021.00040(274-282)Online publication date: Dec-2021
  • (2020)HALO: post-link heap-layout optimisationProceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization10.1145/3368826.3377914(94-106)Online publication date: 22-Feb-2020
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media