Fast algorithms for finding nearest common ancestors
SIAM Journal on Computing
An incremental algorithm for maintaining the dominator tree of a reducible flowgraph
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Identifying loops using DJ graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Nesting of reducible and irreducible loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
Identifying loops in almost linear time
ACM Transactions on Programming Languages and Systems (TOPLAS)
Data structures for weighted matching and nearest common ancestors with linking
SODA '90 Proceedings of the first annual ACM-SIAM symposium on Discrete algorithms
SIAM Journal on Computing
On loops, dominators, and dominance frontier
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Communications of the ACM
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
The Theory of Parsing, Translation, and Compiling
The Theory of Parsing, Translation, and Compiling
Proceedings of the 1983 International FCT-Conference on Fundamentals of Computation Theory
On finding lowest common ancestors in trees
STOC '73 Proceedings of the fifth annual ACM symposium on Theory of computing
Hi-index | 0.00 |
This paper presents a simple and fast algorithm with proof of correctness for analyzing dominance relations of control flow graphs (CFGs). A dominator tree and dominance frontiers are obtained by reducing a DAG, which is obtained by adding dummy vertexes to the original CFG to transmit dominance relation of irreducible loops to the resultant DAG. A specific order of stacking vertexes eliminates the necessity to search for reduction candidates. The computational complexity of the algorithm for a real-world CFG with M edges is O(M), which is also confirmed by analyzing about 1700 CFGs extracted from real programs.