skip to main content
article
Free access

Improving data-flow analysis with path profiles

Published: 01 May 1998 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. Laxus. Exploiting hardware performance counters with flow and context sensitive profiling. In Proceedings of the SIGPLAN '97 Conference on Programraing Language Design and Implementation, June 1997.
[2]
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.
[3]
Rastislav Bod/k and Sadun Anlk. Path-sensitive value-flow analysis. In Proceedings of the SIGPLAN '98 Symposium on Principles of Programming Languages (POPL), January 1998.
[4]
Rastislav Bodik, Rajiv Gupta, and Mary Lou Sofia. Interprocedural conditional branch elimination. In Proceedings of the SiGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), pages 146-158, June 1997.
[5]
Rastislav Bodlk, Rajiv Gupta, and Mary Lou Sofia. Refining data flow information using infeasible paths. In Fifth A CM SIGSOFT Symposium on Foundations of Software Engineering and Sixth European Software Engineering Conference, September 1997.
[6]
Rastislav Bod{k, Rajiv Gupta, and Mary Lou Sofia. Complete removal of redundant computations. In Proceedings of the SIGPLAN '98 Conference on Programming Language Design and Implementation (PLDI), June 1998. To appear.
[7]
T. Ball and J. R. Larus. Efficient path profiling. In Proceedings of MICRO 96, pages 46-57, December 1996.
[8]
Joseph A. Fisher. Trace scheduIing: A technique for global mlcrocode compaction. IEEE Transactions on Computers, C-30(7):478-490, July 1981.
[9]
David Gries. Describing an algorithm by hopcroft. Acts Informatica, 2:97-109, 1973.
[10]
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.
[11]
L. Howard Holley and Barry K. Rosen. Qualified data flow probIems. IEEE 7~ansactions on Software Engineering, SE-7(1):60-78, January 1981.
[12]
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.
[13]
Wen met W. Hwu, Scott A. Mahlke, William Y. Chen, Pohua P. Chang, Nancy J. Warter, Roger A. Brlngmann, Roland G. Ouellette, Richard E. Hank, Tokuzo Kiyohara, Grant E. Hash, 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.
[14]
G. RamaJingam. Data flow frequency analysis. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 267-277, May 1996.
[15]
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. Lain, and John L. Hennessy. An overview of the SUIF compiler system. Published on the World Wide Web at http://sulf, stanford.edu/suif/suifl/suif-overview/sulf, html.
[16]
Mark N. Wegman and F. Kenneth Zadeck. Constant propagation with conditional branches. A CM Transactions on Programming Languages and Systems, 13(2):181-210, April 1991.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 33, Issue 5
May 1998
358 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/277652
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI '98: Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
    May 1998
    357 pages
    ISBN:0897919874
    DOI:10.1145/277650
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 1998
Published in SIGPLAN Volume 33, Issue 5

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)189
  • Downloads (Last 6 weeks)38
Reflects downloads up to 18 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media