# Control flow analysis

@article{Allen1970ControlFA, title={Control flow analysis}, author={Frances E. Allen}, journal={Proceedings of a symposium on Compiler optimization}, year={1970} }

Any static, global analysis of the expression and data relationships in a program requires a knowledge of the control flow of the program. Since one of the primary reasons for doing such a global analysis in a compiler is to produce optimized programs, control flow analysis has been embedded in many compilers and has been described in several papers. An early paper by Prosser [5] described the use of Boolean matrices (or, more particularly, connectivity matrices) in flow analysis. The use of…

## 802 Citations

### Utilizing the Value State Dependence Graph for Haskell

- Computer Science
- 2012

The goal of this thesis is to make the Value State Dependence Graph applicable for Haskell by equipping the GHC compiler with a proof-of-concept back-end that facilitates the use of it.

### Applications of a graph grammar for program control flow analysis

- Computer SciencePOPL
- 1977

This paper studies the applicability of a grammatical approach to describing the set of control flow graphs which arise from "good" programs in the sense proposed by many programming practitioners and addresses several new questions.

### Iterative-free program analysis

- Computer ScienceICFP '03
- 2003

A new method to analyze programs through recursive graph traversals instead of iterative procedures, based on the fact that most programs (without spaghetti GOTO) have well-structured control flow graphs, graphs with bounded tree width is proposed.

### The program dependence graph and its use in optimization

- Computer ScienceTOPL
- 1987

An intermediate program representation, called the program dependence graph (PDG), that makes explicit both the data and control dependences for each operation in a program, allowing transformations to be triggered by one another and applied only to affected dependences.

### Practical dynamic reconstruction of control flow graphs

- Computer ScienceSoftw. Pract. Exp.
- 2021

Experimental results provide evidence that completeness, that is, the ability to conclude that the entire CFG has been discovered, is achievable on many functions that are part of industry‐strong benchmarks, and indicate that dynamic information greatly enhances the ability of DynInst, a state‐of‐the‐art binary reconstructor, to deal with code stripped of debugging information.

### A Fast Algorithm for the Elimination of Common Subexpressions

- Computer ScienceSWAT
- 1972

An O(n log n) bit vecter step algorithm is given to determine "available expressions" and this information is essential for global elimination of common subexpressions.

### Symbolic evaluation and the global value graph

- MathematicsPOPL
- 1977

By means of a structure called the global value graph which compactly represents both symbolic values and the flow of these values through the program, this paper is able to obtain results that are as strong as either of these algorithms at a lower time cost, while retaining applicability to all flow graphs.

### An Empirical Study of Iterative Data-Flow Analysis

- Computer Science2006 15th International Conference on Computing
- 2006

A number of different data structures are laid out to speed up the iterative algorithm using a worklist approach and it is shown that the worklist algorithm is significantly faster than the round-robin approach, but that this advantage can be reversed if mistakes are made in the work list implementation.

### A unified approach to global program optimization

- Computer SciencePOPL
- 1973

A technique is presented for global analysis of program structure in order to perform compile time optimization of object code generated for expressions that includes constant propagation, common subexpression elimination, elimination of redundant register load operations, and live expression analysis.

## References

SHOWING 1-10 OF 16 REFERENCES

### Optimization of expressions in Fortran

- Computer ScienceCACM
- 1969

A method of optimizing the computation of arithmetic and indexing expressions of a Fortran program is presented. The method is based on a linear analysis of the definition points of the variables and…

### Program optimization

- Computer ScienceSICOSIM3
- 1972

This paper addresses the problems encountered in launching and promoting a program optimization service in an open shop environment among users with widely varying levels of programming to indicate the method used to isolate and correct the sections of code that preempt the vital computer resources.

### The LRLTRAN compiler

- Computer ScienceCACM
- 1968

A language and a compiler for that language, called LRLTRAN, is a heavily augmented FORTRAN and makes use internally of a postfix Polish notation and a free representation referred to as a “composite blocking table”.

### Object code optimization

- Computer ScienceCACM
- 1969

Methods of analyzing the control flow and data flow of programs during compilation are applied to transforming the program to improve object time efficiency and implementation of these and other optimizations in OS/360 FORTRAN H are described.

### Applications of Boolean matrices to the analysis of flow diagrams

- Computer ScienceIRE-AIEE-ACM '59 (Eastern)
- 1959

Questions concerning order of operations, location and disposition of transfers, identification of subroutines, internal consistency, redundancy and equivalence, all involve a knowledge of the structure of the program under study and must be handled effectively by any automatic programming system.

### Global Common Sub-expression Elimination

- these Proceedings

### Lecture Control-Flow Analysis CS553 Lecture Control-Flow Analysis CS553 Lecture Control-Flow Analysis CS553 Lecture Control-Flow Analysis CS553 Lecture Control-Flow Analysis

- Lecture Control-Flow Analysis CS553 Lecture Control-Flow Analysis CS553 Lecture Control-Flow Analysis CS553 Lecture Control-Flow Analysis CS553 Lecture Control-Flow Analysis

### Some Analysis Techniques for Optimizing Computer Programs

- Proc. Second Intl. Conf. of Systems Sciences