Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/258915.258927acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free access

Interprocedural dataflow analysis in an executable optimizer

Published: 01 May 1997 Publication History
  • Get Citation Alerts
  • Abstract

    Interprocedural dataflow information enables link-time and post-link-time optimizers to perform analyses and code transformations that are not possible in a traditional compiler. This paper describes the interprocedural dataflow analysis techniques used by Spike, a post-linktime optimizer for Alpha/NT executables. Spike uses dataflow analysis to summarize the register definitions, uses, and kills that occur external to each routine, allowing Spike to perform a variety of optimizations that require interprocedural dataflow information. Because Spike is designed to optimize large PC applications, the time required to perform interprocedural dataflow analysis could potentially be unacceptably long, limiting Spike's effectiveness and applicability. To decrease dataflow analysis time, Spike uses a compact representation of a program's intraprocedural and interprocedural control flow that efficiently summarizes the register definitions and uses that occur in the program. Experimental results are presented for the SPEC95 integer benchmarks and eight large PC applications. The results show that the compact representation allows Spike to compute interprocedural dataflow information in less than 2 seconds for each of the SPEC95 integer benchmarks. Even for the largest PC application containing over 1.7 million instructions in 340 thousand basic blocks, interprocedural dataflow analysis requires just 12 seconds.

    References

    [1]
    A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1988.
    [2]
    Alpha Architecture Reference Manual. http://www.partner.digital.com/www-swdev/pages/ Home/rECH/doc uments/alph!c ~k~~iblio.h~
    [3]
    D. Blickstein, et al, "The GEM optimizing compiler system," Digital Technical Journal, 4(4):121-136.
    [4]
    D. Callahan. "The program sununm'y graph and flow-sensitive interprocedural data flow analysis," in Proc. A CM SIGPLAN Conf. on Programming Language Design and Implementation '88, pp 47-56, June 1988.
    [5]
    Alpha NT Calling Standard. http://www.partner, digital.com/www-swdev/pages/ Home/'IECH/documents/alpha_cookbook/biblio.htm
    [6]
    R. Cohn and G. Lowney, "Hot Cold optimization of large Windows/NT applications," to appear in Proc. of the 29th Annual Intl. Symp. on Microarchitecture, Dec. 1996.
    [7]
    Ron Cytron, Jeanne Ferrante, Barry Rosen, Mark Wegman, and Kenneth Zadeck, "An efficient method for computing static single assignment form." in A CM Symposium on Principles of Programming Languages, pp 25-35, January 1989
    [8]
    D. Go~win and K. Wilken, "Optimal and near-optimal global register allocation using 0-1 integer programming," Software - Practice & Experience, Vol. 26(8), pp. 929-965, August 1996.
    [9]
    U. Khedker and D. Dhamdhere, "A generalized theory of bit vector data flow analysis," A CM Transactions on Programming Languages and Systems, Vol. 16(5), pp. 1472-1511, September 1994.
    [10]
    K. Pettis and R. Hansen, "Profile guided code positioning," in Proc. A CM SIGPLAN Conf. on Programming Language Design and Implementation '90, pp 16-27, June 1990
    [11]
    John Reif and Robert Tarjan, "Symbolic program analysis in almost linear time." SIAM Journal of Computing, 11 (I), February 1982.
    [12]
    T. Reps, S. Horwitz, and M. Sagiv, "Precise interprocedural dataflow analysis via graph reachability," in Proc. 22nd A CM SIGPLAN- SIGACT Conf. on Principles of Programming Languages, pp. 49-61, 1995.
    [13]
    M. Sagiv, T. Reps, and S. Horowitz, "Precise interprocedural datafiow analysis with applications to constant propagation," in Proc. of FASE '95: Colloquium on Formal Approaches in Software Engineering, May 1995. Lecture Notes in Computer Science, Vol. 915, Springer-Verlag, New York, NY, pp. 651-665.
    [14]
    M. Sharir and A. Pnueli, "Two approaches to interprocedural data flow analysis." in Program Flow Analysis, Theory and Applications by S. Muchnick and N. Jones, 1981.
    [15]
    A. Srivastava and D. Wall, "A practical system for intermodule code optimization at linktime," Journal of Programming Languages 1 (I), pp. 1-18, March 1993.
    [16]
    A. Srivastava and D. Wall, "Link-time optimization of address calculation on a 64-bit architecture," in Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation '94, pp. 49-60, Orlando, FL, June 1994.
    [17]
    L.S. Wilson, C.A. Neth, M.J. Rickabaugh, "Delivering binary object modification tools for program analysis and optimization," volume 8,1 of Digital Technical Journal, pp. 18-31, 1996.

    Cited By

    View all
    • (2013)A novel requirement analysis approach for periodic control systemsFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-013-2008-17:2(214-235)Online publication date: 1-Apr-2013
    • (2010)Context-sensitive analysis of obfuscated x86 executablesProceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation10.1145/1706356.1706381(131-140)Online publication date: 19-Jan-2010
    • (2010)Context-sensitive analysis without calling-contextHigher-Order and Symbolic Computation10.1007/s10990-011-9080-123:3(275-313)Online publication date: 1-Sep-2010
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
    May 1997
    365 pages
    ISBN:0897919076
    DOI:10.1145/258915
    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 1997

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    PLDI97
    Sponsor:
    PLDI97: Conference on Programming Language
    June 16 - 18, 1997
    Nevada, Las Vegas, USA

    Acceptance Rates

    PLDI '97 Paper Acceptance Rate 31 of 158 submissions, 20%;
    Overall Acceptance Rate 406 of 2,067 submissions, 20%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)39
    • Downloads (Last 6 weeks)11
    Reflects downloads up to 09 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2013)A novel requirement analysis approach for periodic control systemsFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-013-2008-17:2(214-235)Online publication date: 1-Apr-2013
    • (2010)Context-sensitive analysis of obfuscated x86 executablesProceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation10.1145/1706356.1706381(131-140)Online publication date: 19-Jan-2010
    • (2010)Context-sensitive analysis without calling-contextHigher-Order and Symbolic Computation10.1007/s10990-011-9080-123:3(275-313)Online publication date: 1-Sep-2010
    • (2006)Issues and support for dynamic register allocationProceedings of the 11th Asia-Pacific conference on Advances in Computer Systems Architecture10.1007/11859802_29(351-358)Online publication date: 6-Sep-2006
    • (2004)IspikeProceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization10.5555/977395.977666Online publication date: 20-Mar-2004
    • (2004)Static program analysis of embedded executable assembly codeProceedings of the 2004 international conference on Compilers, architecture, and synthesis for embedded systems10.1145/1023833.1023857(157-166)Online publication date: 22-Sep-2004
    • (2004)Link-time optimization techniques for eliminating conditional branch redundanciesEighth Workshop on Interaction between Compilers and Computer Architectures, 2004. INTERACT-8 2004.10.1109/INTERA.2004.1299513(87-96)Online publication date: 2004
    • (2004)Link-Time Path-Sensitive Memory Redundancy EliminationProceedings of the 10th International Symposium on High Performance Computer Architecture10.1109/HPCA.2004.10009Online publication date: 14-Feb-2004
    • (2004)Ispike: A post-link optimizer for the intel architectureInternational Symposium on Code Generation and Optimization, 2004. CGO 2004.10.1109/CGO.2004.1281660(15-26)Online publication date: 2004
    • (2003)Load redundancy elimination on executable codeConcurrency and Computation: Practice and Experience10.1002/cpe.74215:10(979-997)Online publication date: 31-Jul-2003
    • 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