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

Demand-driven computation of interprocedural data flow

Published: 25 January 1995 Publication History
  • Get Citation Alerts
  • Abstract

    This paper presents a general framework for deriving demand-driven algorithms for interprocedural data flow analysis of imperative programs. The goal of demand-driven analysis is to reduce the time and/or space overhead of conventional exhaustive analysis by avoiding the collection of information that is not needed. In our framework, a demand for data flow information is modeled as a set of date flow queries. The derived demand-driven algorithms find responses to these queries through a partial reversal of the respective data flow analysis. Depending on whether minimizing time or space is of primary concern, result caching may be incorporated in the derived algorithm. Our framework is applicable to interprocedural data flow problems with a finite domain set. If the problem's flow functions are distributive, the derived demand algorithms provide as precise information as the corresponding exhaustive analysis. For problems with monotone but non-distributive flow functions the provided data flow solutions are only approximate. We demonstrate our approach using the example of interprocedural copy constant propagation.

    References

    [1]
    G. Birkhoff. Lattice theory, volume 25. American Mathematical Society, Colloquium Publication, Washington, DC, 3rd edition, '84.
    [2]
    W.A. Babich and M. Jazayeri. The method of attributes for data flow analysis: Part II. Demand analysis. Acta Informatica, 10(3), Oct. '78.
    [3]
    F. Bourdoncle. Abstract debugging of high-order imperative languages. In SIGPLAN '93 Conf. on Programming Language Design and implementation, pages 36-45, Albuquerque, NM, Jun. '93.
    [4]
    P. Cousot and R. Cousot. Static determination of dynamic properties of recursive procedures. In E.J. Neuhold, editor, IFIP Conf. on Formal Description of Programming Concepts, pases 237--277. North- Hollan Pub. Co., '77.
    [5]
    J.D. Choi, R.K. Cytron, and J. Ferrante. Automatic construction of sparse data flow evaluation graphs. In 18th A CM Syrup. on Principles of Programming Languages, pages 55-66, Orlando, FL, Jan. '90.
    [6]
    J.D. Choi, R. Cytron, and J. Ferrante. On the efficient engineering of ambitious program analysis. IEEE Trans. on Software Engineering, 20(2):105-114, Feb. '92.
    [7]
    R. Cytron and R. Gershbein. Efficient accommodation of may-alias information in SSA form. In SIG- PLAN '93 Conf. on Programming Language Design and Implementation, pages 36-45, Albuquerque, NM, Jim. '93.
    [8]
    K. Cooper, M. Hall, and K. Kennedy. Procedure cloning. In IEEE 1992 Int. Conf. on Computer Languages, pages 96-105, San Francisco, CA, April 1992.
    [9]
    K. Cooper and K. Kennedy. Interprocedural sideeffect analysis in linear time. SIGPLAN '88 Syrup. on Compiler Construction, published in SIGPLAN Notices, 23(7):57-66, Jun. '88.
    [10]
    K. Cooper. Analyzing aliases of reference formal parameters. In 12th A CM Symp. on Principles of Programming Languages, pages 281-290, '85.
    [11]
    P. Cousot. Semantic foundations of program analysis. In S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Apphcations, pages 303- 342. Prentice-Hall, '81.
    [12]
    E. Duesterwald, R. Gupta, and M.L. Sofia. Reducing the cost of data flow analysis by congruence partitioning. In 5th Int. Conf. on Compiler Construction, pages 357-373, Edinburgh, U.K., Apr. '94. Springer Verlag, LNCS 786.
    [13]
    D.M. Dhamdhere, B.K. Rosen, and F.K. Zadeck. How to analyze large programs efficiently and informatively. In SIGPLAN '92 Conf. on Programming Language Design and Implementation, pages 212-223, San Francisco, CA, Jan. '92.
    [14]
    D. Grove and L. Torczon. Interprocedural constant propagation: a study of jump function implementations. In SIGPLAN '93 Conf. on Programming Language Design and Implementation, pages 90-99, Albuquerque, NM, Jun. '93.
    [15]
    J. Hughes and J. Launchbury. Reversing abstract interpretations. In $th European Symp. on Programming, pages 269-286, Rennes, France, Feb. '92. Springer Verlag, LNCS 582.
    [16]
    N.D. Jones and A. Mycroft. Data flow analysis of applicative programs using minimal function graphs. In 13th Syrup. on Principles of Programming Languages, pages 194-206, Florida, 1973.
    [17]
    N. Jones and S. Muchnick. A flexible approach to interprocedural data flow analysis and programs with recursive data structures. In 9th Symp. on Prancepies of Programming Languages, pages 66-74, Albuquerque, New Mexico, 1982.
    [18]
    R. Johnson and K. Pingali. Dependence-based program analysis. In SIGPLAN '93 Conf. on Programming Language Design and Implementation, pages 78-89, Albuquerque, NM, Jan. '93.
    [19]
    G. Kildall. A unified approach to global program optimization. In 1st A CM Symp. on Principles of Programming Languages, pages 194-206, Boston, Massachusetts, Jan. '73.
    [20]
    J. Knoop and B. Steffen. The interprocedural coincidence theorem. In #$th Int. Conf. on Compiler Construction, pages 125-140, Paderborn, Germany, Oct. '92. Springer Verlag, LNCS 641.
    [21]
    J.B. Kam and J.D. Ullman. Monotone data flow analysis frameworks. Acta Informatica, 7(3):305-317, Jul. '77.
    [22]
    V. Maslov. Lazy array data-flow dependence analysis. In ACM Syrup. on Principles of Programming Languages, pages 1-15, Jan. '94.
    [23]
    E.W. Myers. A precise inter-procedural data flow algorithm. In 8th ACM Syrup. on Principles of Programming Languages, pages 219-230, Williamsburg, Virginia, Jan. '81.
    [24]
    L. Pollock and M.L. Sofia. An incremental version of iterative data flow analysis. IEEE Trans. on Software Engineering, 15(12):1537-1549, Dec. '89.
    [25]
    T. Reps. Solving demand versions of interprocedural analysis problems. In 5th Int. Conf. on Compiler Construction, pages 389-403, Edinburgh, U.K., Apr. '94. Springer Verlag, LNCS 786.
    [26]
    B. Rosen. Data flow analysis for procedttrallanguages. Journal of the A CM, 26(2):322-344, '79.
    [27]
    B. Rosen. Linear cost is sometimes quadratic. In 8th A CM Symp. on PmncipIes of Programming Languages, pages 117-124, Jun. '81.
    [28]
    B.G. Ryder and M.C. Paul}. Incremental data flow analysis algorithms. A CM Trans. Programming Languages and Systems, 10(1):1-50, '88.
    [29]
    T. Reps, M. Sagiv, and S. Horwitz. Interprocedural datatiow analysis via graph reachability. Technical Report 94-14, Datalogisk Institut, University of Copenhagen, Copenhagen, Denmark, '94.
    [30]
    J. Reif and R.E. Tarjan. Symbolic program analysis in almost linear time. SIAM Journal of Computing, 11 (1):81-93, Feb. '82.
    [31]
    B. Rosen, M. Wegman, and F.K. Zadeck. Global value numbers and redundant computations. In 15th A CM Syrup. on Principles of Programming Languages, pages 12-27, San Diego, CA, Jan. '88.
    [32]
    A.D. Stoyenko, T.J. Marlowe, W.A. Halang, and M. Younis. Enabling efficient schedulability analysis through conditional linking and program transformations. Control Engineering Practice, 1(1):85-105, '93.
    [33]
    M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Applications, pages 189-234. Prentice-Hall, '81.
    [34]
    R.E. Strom and D.M. Yellin. Extending typestate checking using conditional liveness analysis. IEEE Trans. on Software Engineemng, 19(5):478-485, May '93.
    [35]
    M. Wegman and F.K. Zadeck. Constant propagation with conditional branches. In 12th A CM Symp. on Principles of Programming Languages, pages 291- 299, New Orleans, Jan. '85.
    [36]
    F.K. Zadeck. Incremental data flow analysis in a structured program editor. In SIGPLAN Syrup. on Compiler Construction, pages 132-143, Jan. '84.

    Cited By

    View all
    • (2024)Interactive Abstract Interpretation with Demanded SummarizationACM Transactions on Programming Languages and Systems10.1145/364844146:1(1-40)Online publication date: 15-Feb-2024
    • (2023)Efficient Interprocedural Data-Flow Analysis Using Treedepth and TreewidthVerification, Model Checking, and Abstract Interpretation10.1007/978-3-031-24950-1_9(177-202)Online publication date: 17-Jan-2023
    • (2022)Automatic Permission Check Analysis for Linux KernelIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2022.3165368(1-1)Online publication date: 2022
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    POPL '95: Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 1995
    415 pages
    ISBN:0897916921
    DOI:10.1145/199448
    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: 25 January 1995

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    POPL95
    POPL95: 22nd ACM Symposium on Principles of Programming Languages
    January 23 - 25, 1995
    California, San Francisco, USA

    Acceptance Rates

    Overall Acceptance Rate 824 of 4,130 submissions, 20%

    Upcoming Conference

    POPL '25

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)92
    • Downloads (Last 6 weeks)12
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Interactive Abstract Interpretation with Demanded SummarizationACM Transactions on Programming Languages and Systems10.1145/364844146:1(1-40)Online publication date: 15-Feb-2024
    • (2023)Efficient Interprocedural Data-Flow Analysis Using Treedepth and TreewidthVerification, Model Checking, and Abstract Interpretation10.1007/978-3-031-24950-1_9(177-202)Online publication date: 17-Jan-2023
    • (2022)Automatic Permission Check Analysis for Linux KernelIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2022.3165368(1-1)Online publication date: 2022
    • (2021)Demanded abstract interpretationProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454044(282-295)Online publication date: 19-Jun-2021
    • (2020)Optimal and Perfectly Parallel Algorithms for On-demand Data-Flow AnalysisProgramming Languages and Systems10.1007/978-3-030-44914-8_5(112-140)Online publication date: 27-Apr-2020
    • (2019)PeXProceedings of the 28th USENIX Conference on Security Symposium10.5555/3361338.3361422(1205-1220)Online publication date: 14-Aug-2019
    • (2019)Faster Algorithms for Dynamic Algebraic Queries in Basic RSMs with Constant TreewidthACM Transactions on Programming Languages and Systems10.1145/336352541:4(1-46)Online publication date: 13-Nov-2019
    • (2018)Speeding up symbolic reasoning for relational queriesProceedings of the ACM on Programming Languages10.1145/32765272:OOPSLA(1-25)Online publication date: 24-Oct-2018
    • (2018)Algorithms for Algebraic Path Properties in Concurrent Systems of Constant Treewidth ComponentsACM Transactions on Programming Languages and Systems10.1145/321025740:3(1-43)Online publication date: 5-Jul-2018
    • (2016)Algorithms for algebraic path properties in concurrent systems of constant treewidth componentsACM SIGPLAN Notices10.1145/2914770.283762451:1(733-747)Online publication date: 11-Jan-2016
    • 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