scispace - formally typeset
Proceedings ArticleDOI

Analysis of a simple algorithm for global data flow problems

TLDR
There is an ordering of the nodes of a flow graph G which topologically sorts the dominance relation and can be found in 0(edges) bit vector steps and it follows that there is a very simple bit propagation algorithm which also uses the above ordering, and is at least as good as the interval algorithm for solving all known global data flow problems.
Abstract
There is an ordering of the nodes of a flow graph G which topologically sorts the dominance relation and can be found in 0(edges) steps. This ordering is the reverse of the order in which a node is last visited while growing any depth-first spanning tree of G. Moreover, if G is reducible, then this ordering topologically sorts the "dag" of G. Thus, for a reducible flow graph (rfg) there is a simple algorithm to compute the dominators of each node in 0(edges) bit vector steps.The main result of this paper relates two parameters of an rfg. If G is reducible, d is the largest number of back edges found in any cycle-free path in G, and k is the length of the interval derived sequence of G, then k≥d. From this result it follows that there is a very simple bit propagation algorithm (indeed, the obvious one) which also uses the above ordering, and is at least as good as the interval algorithm for solving all known global data flow problems such as "available expressions" and "live variables."

read more

Citations
More filters
Proceedings ArticleDOI

Securing web application code by static analysis and runtime protection

TL;DR: A lattice-based static analysis algorithm derived from type systems and typestate is created, and its soundness is addressed, thus securing Web applications in the absence of user intervention and reducing potential runtime overhead by 98.4%.
Journal ArticleDOI

A program data flow analysis procedure

TL;DR: The global data relationships in a program can be exposed and codified by the static analysis methods described in this paper.
Journal ArticleDOI

Global Data Flow Analysis and Iterative Algorithms

TL;DR: Conditions under which the bound on the number of iterations required for propagation algorithms when the data is represented by bit vectors and depth-first ordering of the flow graph is used are considered are considered.
Proceedings ArticleDOI

Lazy code motion

TL;DR: The point of the bit-vector algorithm is the decomposition of the bi-directional structure of the known placement algorithms into a sequence of a backward and a forward analysis, which directly implies the efficiency result.
Journal ArticleDOI

Optimal code motion: theory and practice

TL;DR: An implementation-oriented algorithm for lazy code motion is presented that minimizes the number of computations in programs while suppressing any unnecessary code motion in order to avoid superfluous register pressure.
References
More filters
Journal ArticleDOI

Depth-First Search and Linear Graph Algorithms

TL;DR: The value of depth-first search or “backtracking” as a technique for solving problems is illustrated by two examples of an improved version of an algorithm for finding the strongly connected components of a directed graph.
Journal ArticleDOI

Control flow analysis

TL;DR: The basic control flow relationships are expressed in a directed graph and various graph constructs are found and shown to codify interesting global relationships.
Journal ArticleDOI

Finding Dominators in Directed Graphs

TL;DR: This paper describes an algorithm for finding dominators in an arbitrary directed graph that uses depth-first search and efficient algorithms for computing disjoint set unions and manipulating priority queues to achieve a time bound of $O(V\log V + E)$ if V is the number of vertices and E is thenumber of edges in the graph.
Journal ArticleDOI

Object code optimization

TL;DR: 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.
Journal ArticleDOI

Global common subexpression elimination

John Cocke
- 01 Jul 1970 - 
TL;DR: The reasons why optimization is required seem to me to fall in two major categories; the first I will call “local” and the second “global”.