Efficiently Computing Static Single Assignment Form and the Control Dependence Graph

Efficiently Computing Static Single Assignment Form and the Control Dependence Graph

October 1991 | RON CYTRON, JEANNE FERRANTE, BARRY K. ROSEN, and MARK N. WEGMAN, F. KENNETH ZADECK
The paper presents efficient algorithms for computing static single assignment (SSA) form and the control dependence graph for arbitrary control flow graphs. These structures are crucial for program optimization, as they enable efficient data flow and control flow analysis. The authors introduce dominance frontiers, a new concept, to facilitate the computation of these structures. They demonstrate that the sizes of these structures are typically linear in the size of the original program, making them practical for optimization. The algorithms use dominance frontiers to determine where φ-functions are needed in SSA form, ensuring that each variable is assigned only once. The paper also shows how dominance frontiers can be used to compute control dependences, which are essential for identifying conditions affecting statement execution. The algorithms are efficient and linear in the size of the SSA program, making them suitable for practical use in optimizing compilers. The paper provides both analytical and experimental evidence supporting the effectiveness of these techniques.The paper presents efficient algorithms for computing static single assignment (SSA) form and the control dependence graph for arbitrary control flow graphs. These structures are crucial for program optimization, as they enable efficient data flow and control flow analysis. The authors introduce dominance frontiers, a new concept, to facilitate the computation of these structures. They demonstrate that the sizes of these structures are typically linear in the size of the original program, making them practical for optimization. The algorithms use dominance frontiers to determine where φ-functions are needed in SSA form, ensuring that each variable is assigned only once. The paper also shows how dominance frontiers can be used to compute control dependences, which are essential for identifying conditions affecting statement execution. The algorithms are efficient and linear in the size of the SSA program, making them suitable for practical use in optimizing compilers. The paper provides both analytical and experimental evidence supporting the effectiveness of these techniques.
Reach us at info@study.space