1995 · 87 citations · 18 references
ComputingComputer EngineeringComputer ScienceAlgorithmsCompilersProgramming LanguagesAbstract Syntax TreesAlgorithm AnalysisControl-flow AnalysisData-flow AnalysisDataflow ModelingControl Flow Graph AnalysisControl-flow Graph ConstructionDataflow GraphsDense Data-flow AnalysisDominator Tree ConstructionProgram RepresentationSparse Data-flow AnalysisStatic Single Assignment Form
Dataflow analysis framework based on Static Single Assignment (SSA) form and Sparse Evaluation Graphs (SEGs) demand fast computation of program points where data flow information must be merged, the so-called φ-nodes. In this paper, we present a surprisingly simple algorithm for computing φ-nodes for arbitrary flowgraphs (reducible or irreducible) that runs in linear time. We employ a novel program representation—the DJ graph—by augmenting the dominator tree of a flowgraph with edges which may lead to a potential “merge” of dataflow information. In searching for φ-nodes we never visit an edge in the DJ-graph more than once by guiding the search of nodes by their levels in the dominator tree.
18
Global value numbers and redundant computations
Barry K. Rosen, Mark N. Wegman, F. K. Zadeck · 1988 · 483 citations
An efficient method of computing static single assignment form
Ron K. Cytron, Jeanne Ferrante, Barry K. Rosen et al. · 1989 · 465 citations
Detecting equality of variables in programs
Bowen Alpern, Mark N. Wegman, F. K. Zadeck · 1988 · 427 citations