Back to Search Start Over

A linear time algorithm for placing φ-nodes

Authors :
Vugranam C. Sreedhar
Guang R. Gao
Source :
POPL
Publication Year :
1995
Publisher :
ACM Press, 1995.

Abstract

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.The algorithm has been implemented and the results are compared with the well known algorithm due to Cytron et al. A consistent and significant speedup has been observed over a range of 46 Fortran procedures taken from a number of benchmark programs. We also ran experiments on increasingly taller ladder graphs and confirmed the linear time complexity of our algorithm.

Details

Database :
OpenAIRE
Journal :
Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '95
Accession number :
edsair.doi...........eb4c9b645e5f1814424c8fecd34774bb
Full Text :
https://doi.org/10.1145/199448.199464