Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Improving data-flow analysis with path profiles

Published: 01 April 2004 Publication History

Abstract

Data-flow analysis computes its solutions over the paths in a control-flow graph. These paths---whether feasible or infeasible, heavily or rarely executed---contribute equally to a solution. However, programs execute only a small fraction of their potential paths and, moreover, programs' execution time and cost is concentrated in a far smaller subset of hot paths.This paper describes a new approach to analyzing and optimizing programs, which improves the precision of data flow analysis along hot paths. Our technique identifies and duplicates hot paths, creating a hot path graph in which these paths are isolated. After flow analysis, the graph is reduced to eliminate unnecessary duplicates of unprofitable paths. In experiments on SPEC95 benchmarks, path qualification identified 2--112 times more non-local constants (weighted dynamically) than the Wegman-Zadek conditional constant algorithm, which translated into 1--7% more dynamic instructions with constant results.

References

[1]
Glenn Ammons, Thomas Ball, and James 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, pages 85--96. ACM, June 1997.
[2]
Vasanth Bala, Evelyn Duesterwald, and Sanjeev Banerjia. Dynamo: A transparent dynamic optimization system. In Proceedings of the SIGPLAN '00 Conference on Programming Language Design and Implementation, pages 1--12. ACM, June 2000.
[3]
Thomas Ball and James R. Larus. Efficient path profiling. In Proceedings of MICRO 96, pages 46--57, December 1996.
[4]
Thomas Ball and Sriram K. Rajamani. The SLAM project: Debugging system software via static analysis. In Proceedings of the 29th ACM SIGPLAN-SIGACT Symposium on the Principles of Programming Languages, pages 1--3. ACM, January 2002.
[5]
Manuvir Das, Sorin Lerner, and Mark Seigle. ESP: Path-sensitive program verification in polynomial time. In Proceedings of the SIGPLAN '02 Conference on Programming Language Design and Implementation, pages 57--68. ACM, June 2002.
[6]
Joseph A. Fisher. Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers, 30(7):478--490, July 1981.
[7]
Seth Hallem, Benjamin Chelf, Yichen Xie, and Dawson Engler. A system and language for building system-specific, static analyses. In Proceedings of the SIGPLAN '02 Conference on Programming Language Design and Implementation, pages 69--82. ACM, June 2002.
[8]
James R. Larus. Whole program paths. In Proceedings of the SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 259--269. ACM, May 1999.
[9]
David Gordon Melski. Interprocedural Path Profiling and the Interprocedural Express-Lane Transformation. PhD thesis, University of Wisconsin-Madison, 2002.
[10]
{ABL97} Glenn Ammons, Thomas Ball, and James 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, June 1997.
[11]
{Aho94} Alfred V. Aho. Algorithms for finding patterns in strings. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume A, chapter 5, pages 255--300. MIT Press, 1994.
[12]
{BA98} Rastislav Bodik and Sadun Anik. Path-sensitive value-flow analysis. In Proceedings of the SIGPLAN '98 Symposium on Principles of Programming Languages (POPL), January 1998.
[13]
{BGS97a} Rastislav Bodík, Rajiv Gupta, and Mary Lou Soffa. Interprocedural conditional branch elimination. In Proceedings of the SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), pages 146--158, June 1997.
[14]
{BGS97b} Rastislav Bodík, Rajiv Gupta, and Mary Lou Soffa. Refining data flow information using infeasible paths. In Fifth ACM SIGSOFT Symposium on Foundations of Software Engineering and Sixth European Software Engineering Conference, September 1997.
[15]
{BGS98} Rastislav Bodík, Rajiv Gupta, and Mary Lou Soffa. Complete removal of redundant computations. In Proceedings of the SIGPLAN '98 Conference on Programming Language Design and Implementation (PLDI), June 1998. To appear.
[16]
{BL96} T. Ball and J. R. Larus. Efficient path profiling. In Proceedings of MICRO 96, pages 46--57, December 1996.
[17]
{Fis81} Joseph A. Fisher. Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers, C-30(7):478--490, July 1981.
[18]
{Gri73} David Gries. Describing an algorithm by hopcroft. Acta Informatica, 2:97--109, 1973.
[19]
{GWZ94} Allen Goldberg, T. C. Wang, and David Zimmerman. Applications of feasible path analysis to program testing. In International Symposium on Software Testing and Analysis. ACM SIGSOFT, August 1994.
[20]
{HR81} L. Howard Holley and Barry K. Rosen. Qualified data flow problems. IEEE Transactions on Software Engineering, SE-7(1):60--78, January 1981.
[21]
{MW95} Frank Mueller and David B. Whalley. Avoiding conditional branches by code replication. In Proceedings of the SIGPLAN '95 Conference on Programming Language Design and Implementation (PLDI), pages 56--66, June 1995.
[22]
{mWHMC+93} Wen mei W. Hwu, Scott A. Mahlke, William Y. Chen, Pohua P. Chang, Nancy J. Warter, Roger A. Bringmann, Roland G. Ouellette, Richard E. Hank, Tokuzo Kiyohara, Grant E. Haab, John G. Holm, and Daniel M. Lavery. The superblock: An effective technique for VLIW and superscalar compilation. The Journal of Supercomputing, 7(1--2):229--248, May 1993.
[23]
{Ram96} G. Ramalingam. Data flow frequency analysis. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 267--277, May 1996.
[24]
{WFW+} Robert P. Wilson, Robert S. French, Christopher S. Wilson, Saman P. Amarasinghe, Jennifer M. Anderson, Steve W. K. Tjiang, Shih-Wei Liao, Chau-Wen Tseng, Mary W. Hall, Monica S. Lam, and John L. Hennessy. An overview of the SUIF compiler system. Published on the World Wide Web at http://suif.stanford.edu/suif/suif1/suif-overview/suif.html.
[25]
{WZ91} Mark N. Wegman and F. Kenneth Zadeck. Constant propagation with conditional branches. ACM Transactions on Programming Languages and Systems, 13(2):181--210, April 1991.

Cited By

View all
  • (2023)Computing maximum fixed point solutions over feasible paths in data flow analysesScience of Computer Programming10.1016/j.scico.2023.102944228(102944)Online publication date: Jun-2023
  • (2018)Estimating the Volume of the Solution Space of SMT(LIA) Constraints by a Flat Histogram MethodAlgorithms10.3390/a1109014211:9(142)Online publication date: 18-Sep-2018
  • (2017)Programs from ProofsACM Transactions on Programming Languages and Systems10.1145/301442739:2(1-56)Online publication date: 10-Mar-2017
  • Show More Cited By

Index Terms

  1. Improving data-flow analysis with path profiles
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 39, Issue 4
    20 Years of the ACM SIGPLAN Conference on Programming Language Design and Implementation 1979-1999: A Selection
    April 2004
    673 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/989393
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 April 2004
    Published in SIGPLAN Volume 39, Issue 4

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 04 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Computing maximum fixed point solutions over feasible paths in data flow analysesScience of Computer Programming10.1016/j.scico.2023.102944228(102944)Online publication date: Jun-2023
    • (2018)Estimating the Volume of the Solution Space of SMT(LIA) Constraints by a Flat Histogram MethodAlgorithms10.3390/a1109014211:9(142)Online publication date: 18-Sep-2018
    • (2017)Programs from ProofsACM Transactions on Programming Languages and Systems10.1145/301442739:2(1-56)Online publication date: 10-Mar-2017
    • (2013)SPLLIFTACM SIGPLAN Notices10.1145/2499370.249197648:6(355-364)Online publication date: 16-Jun-2013
    • (2013)SPLLIFTProceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2491956.2491976(355-364)Online publication date: 16-Jun-2013
    • (2012)k-Calling context profilingACM SIGPLAN Notices10.1145/2398857.238467947:10(867-878)Online publication date: 19-Oct-2012
    • (2012)k-Calling context profilingProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/2384616.2384679(867-878)Online publication date: 19-Oct-2012
    • (2011)Mining hot calling contexts in small spaceProceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1993498.1993559(516-527)Online publication date: 4-Jun-2011
    • (2011)Mining hot calling contexts in small spaceACM SIGPLAN Notices10.1145/1993316.199355946:6(516-527)Online publication date: 4-Jun-2011
    • (2010)Dynamic interpretation for dynamic scripting languagesProceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization10.1145/1772954.1772993(278-287)Online publication date: 24-Apr-2010
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media