A linear time algorithm for placing φ-nodes
A linear time algorithm for placing φ-nodes
复制标题
放置 φ 节点的线性时间算法
DOI:
10.1145/199448.199464
复制
发表时间:
1995
期刊:
影响因子:
--
通讯作者:
G. Gao
中科院分区:
文献类型:
--
作者:
V. Sreedhar;G. Gao
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 &fgr;-nodes. In this paper, we present a surprisingly simple algorithm for computing &fgr;-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 &fgr;-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.