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 optimizing compilers as they facilitate efficient data flow and control flow analysis. The authors introduce the concept of *dominance frontiers*, which helps in determining the placement of φ-functions (join nodes) in the control flow graph. The algorithms are designed to be linear in the size of the original program, making them practical for real-world applications. The paper also discusses the translation of SSA form into and out of the original program, and provides experimental evidence that the size of the SSA program is typically linear in the size of the original program. The techniques presented are useful for various optimizations, including constant propagation and parallelism detection.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 optimizing compilers as they facilitate efficient data flow and control flow analysis. The authors introduce the concept of *dominance frontiers*, which helps in determining the placement of φ-functions (join nodes) in the control flow graph. The algorithms are designed to be linear in the size of the original program, making them practical for real-world applications. The paper also discusses the translation of SSA form into and out of the original program, and provides experimental evidence that the size of the SSA program is typically linear in the size of the original program. The techniques presented are useful for various optimizations, including constant propagation and parallelism detection.