Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Interprocedural data flow analysis in a programming environment
Publisher:
  • Rice University
  • 6100 S. Main Houston, TX
  • United States
Order Number:AAI8314924
Pages:
172
Reflects downloads up to 12 Nov 2024Bibliometrics
Skip Abstract Section
Abstract

This thesis examines three problems arising in the construction of an ambitious optimizing compiler based in a programming environment. The specific problems discussed are the analysis of aliasing patterns, computation of summary data flow information, and assignment of linkage styles to call sites.

A two phase algorithm for alias analysis is developed. Alias introduction analysis, performed during syntax analysis, detects the introduction of aliases and determines which call sites can propagate aliases. Alias propagation analysis uses a version of the classical iterative data flow analysis algorithm to compute potential aliases at each call site. The algorithm retains information to allow efficient updating in response to editing changes.

Two approaches to computing may summary information are presented. The first uses a version of the algorithm developed for alias propagation analysis. The second approach divides the problem into analysis for call-by-reference formal parameters and global variables. The parameter problem is solved using Tarjan's fast path expression algorithm, while the global variable analysis uses a depth first version the interative algorithm.

An algorithm is developed for assigning linkage choices to each call site in the program. The algorithm compares the relative benefits of generating open, semi-open, semi-closed, and node split linkages at each call site. By using estimates and simplifications, it efficiently produces an assignment which leads to improved run-time behavior under reasonable assumptions.

Cited By

  1. ACM
    Nichols L, Emre M and Hardekopf B Fixpoint reuse for incremental JavaScript analysis Proceedings of the 8th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis, (2-7)
  2. ACM
    Cooper K and Kennedy K (2004). Interprocedural side-effect analysis in linear time, ACM SIGPLAN Notices, 39:4, (217-228), Online publication date: 1-Apr-2004.
  3. ACM
    Callahan D, Cooper K, Kennedy K and Torczon L (2004). Interprocedural constant propagation, ACM SIGPLAN Notices, 39:4, (155-166), Online publication date: 1-Apr-2004.
  4. ACM
    Burke M and Cytron R (2004). Interprocedural dependence analysis and parallelization, ACM SIGPLAN Notices, 39:4, (139-154), Online publication date: 1-Apr-2004.
  5. ACM
    Abbott M and Peterson L (2019). A language-based approach to protocol implementation, ACM SIGCOMM Computer Communication Review, 22:4, (27-38), Online publication date: 1-Oct-1992.
  6. ACM
    Abbott M and Peterson L A language-based approach to protocol implementation Conference proceedings on Communications architectures & protocols, (27-38)
  7. ACM
    Wegman M and Zadeck F (1991). Constant propagation with conditional branches, ACM Transactions on Programming Languages and Systems, 13:2, (181-210), Online publication date: 1-Apr-1991.
  8. Burke M and Ryder B (2019). A Critical Analysis of Incremental Iterative Data Flow Analysis Algorithms, IEEE Transactions on Software Engineering, 16:7, (723-728), Online publication date: 1-Jul-1990.
  9. Ryder B, Landi W and Pande H (2019). Profiling an Incremental Data Flow Analysis Algorithm, IEEE Transactions on Software Engineering, 16:2, (129-140), Online publication date: 1-Feb-1990.
  10. ACM
    Marlowe T and Ryder B An efficient hybrid algorithm for incremental data flow analysis Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (184-196)
  11. ACM
    Cooper K and Kennedy K (2019). Interprocedural side-effect analysis in linear time, ACM SIGPLAN Notices, 23:7, (57-66), Online publication date: 1-Jul-1988.
  12. ACM
    Callahan D (2019). The program summary graph and flow-sensitive interprocedual data flow analysis, ACM SIGPLAN Notices, 23:7, (47-56), Online publication date: 1-Jul-1988.
  13. ACM
    Cooper K and Kennedy K Interprocedural side-effect analysis in linear time Proceedings of the ACM SIGPLAN 1988 conference on Programming language design and implementation, (57-66)
  14. ACM
    Callahan D The program summary graph and flow-sensitive interprocedual data flow analysis Proceedings of the ACM SIGPLAN 1988 conference on Programming language design and implementation, (47-56)
  15. ACM
    Ruggieri C and Murtagh T Lifetime analysis of dynamically allocated objects Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (285-293)
  16. ACM
    Carroll M and Ryder B Incremental data flow analysis via dominator and attribute update Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (274-284)
  17. ACM
    Burke M and Cytron R (2019). Interprocedural dependence analysis and parallelization, ACM SIGPLAN Notices, 21:7, (162-175), Online publication date: 1-Jul-1986.
  18. ACM
    Callahan D, Cooper K, Kennedy K and Torczon L (2019). Interprocedural constant propagation, ACM SIGPLAN Notices, 21:7, (152-161), Online publication date: 1-Jul-1986.
  19. ACM
    Burke M and Cytron R Interprocedural dependence analysis and parallelization Proceedings of the 1986 SIGPLAN symposium on Compiler construction, (162-175)
  20. ACM
    Callahan D, Cooper K, Kennedy K and Torczon L Interprocedural constant propagation Proceedings of the 1986 SIGPLAN symposium on Compiler construction, (152-161)
  21. ACM
    Cytron R, Lowry A and Zadeck F Code motion of control structures in high-level languages Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, (70-85)
  22. ACM
    Cooper K, Kennedy K and Torczon L (2019). The impact of interprocedural analysis and optimization on the design of a software development environment, ACM SIGPLAN Notices, 20:7, (107-116), Online publication date: 1-Jul-1985.
  23. ACM
    Cooper K, Kennedy K and Torczon L The impact of interprocedural analysis and optimization on the design of a software development environment Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments, (107-116)
  24. ACM
    Cooper K Analyzing aliases of reference formal parameters Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, (281-290)
  25. ACM
    Cooper K and Kennedy K Efficient computation of flow insensitive interprocedural summary information Proceedings of the 1984 SIGPLAN symposium on Compiler construction, (247-258)
  26. ACM
    Cooper K and Kennedy K (2019). Efficient computation of flow insensitive interprocedural summary information, ACM SIGPLAN Notices, 19:6, (247-258), Online publication date: 1-Jun-1984.
Contributors
  • Rice University

Recommendations