Worst-case Analysis of Set Union Algorithms
Journal of the ACM (JACM)
Data structures and network algorithms
Data structures and network algorithms
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Applications of a poset representation to edge connectivity and graph rigidity
SFCS '91 Proceedings of the 32nd annual symposium on Foundations of computer science
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
A new, simpler linear-time dominators algorithm
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
Characterizations of Reducible Flow Graphs
Journal of the ACM (JACM)
Efficiency of a Good But Not Linear Set Union Algorithm
Journal of the ACM (JACM)
Applications of Path Compression on Balanced Trees
Journal of the ACM (JACM)
SIAM Journal on Computing
Optimal pointer algorithm for finding nearest common ancestors in dynamic trees
Journal of Algorithms
A fast algorithm for finding dominators in a flowgraph
ACM Transactions on Programming Languages and Systems (TOPLAS)
On loops, dominators, and dominance frontiers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fault Equivalence Identification Using Redundancy Information and Static and Dynamic Extraction
VTS '01 Proceedings of the 19th IEEE VLSI Test Symposium
Finding dominators revisited: extended abstract
SODA '04 Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms
Dominator tree verification and vertex-disjoint paths
SODA '05 Proceedings of the sixteenth annual ACM-SIAM symposium on Discrete algorithms
Linear-Time Algorithms for Dominators and Other Path-Evaluation Problems
SIAM Journal on Computing
Testing flow graph reducibility
Journal of Computer and System Sciences
Diagnosing memory leaks using graph mining on heap dumps
Proceedings of the 16th ACM SIGKDD international conference on Knowledge discovery and data mining
Testing 2-vertex connectivity and computing pairs of vertex-disjoint s-t paths in digraphs
ICALP'10 Proceedings of the 37th international colloquium conference on Automata, languages and programming
Approximating the smallest 2-vertex connected spanning subgraph of a directed graph
ESA'11 Proceedings of the 19th European conference on Algorithms
Using dominators for solving constrained path problems
PADL'06 Proceedings of the 8th international conference on Practical Aspects of Declarative Languages
Finding strong bridges and strong articulation points in linear time
Theoretical Computer Science
Dominators, directed bipolar orders, and independent spanning trees
ICALP'12 Proceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part I
Mechanized verification of computing dominators for formalizing compilers
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Hi-index | 0.00 |
The problem of finding dominators in a directed graph has many important applications, notably in global optimization of computer code. Although linear and near-linear-time algorithms exist, they use sophisticated data structures. We develop an algorithm for finding dominators that uses only a ''static tree'' disjoint set data structure in addition to simple lists and maps. The algorithm runs in near-linear or linear time, depending on the implementation of the disjoint set data structure. We give several versions of the algorithm, including one that computes loop nesting information (needed in many kinds of global code optimization) and that can be made self-certifying, so that the correctness of the computed dominators is very easy to verify.