Proceedings ArticleDOI
Analysis of a simple algorithm for global data flow problems
Matthew S. Hecht,Jeffrey D. Ullman +1 more
- pp 207-217
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
Frances E. Allen,John Cocke +1 more
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
John B. Kam,Jeffrey D. Ullman +1 more
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
Edward S. Lowry,C. W. Medlock +1 more
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
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”.