A new, simpler linear-time dominators algorithm
- 1 November 1998
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 20 (6) , 1265-1296
- https://doi.org/10.1145/295656.295663
Abstract
We present a new linear-time algorithm to find the immediate dominators of all vertices in a flowgraph. Our algorithm is simpler than previous linear-time algorithms: rather than employ complicated data structures, we combine the use of microtrees and memoization with new observations on a restricted class of path compressions. We have implemented our algorithm, and we report experimental results that show that the constant factors are low. Compared to the standard, slightly superlinear algorithm of Lengauer and Tarjan, which has much less overhead, our algorithm runs 10-20% slower on real flowgraphs of reasonable size and only a few percent slower on very large flowgraphs.Keywords
This publication has 21 references indexed in Scilit:
- Linearity and Unprovability of Set Union Problem StrategiesJournal of Algorithms, 1997
- Optimal control dependence computation and the Roman chariots problemACM Transactions on Programming Languages and Systems, 1997
- Efficiently computing static single assignment form and the control dependence graphACM Transactions on Programming Languages and Systems, 1991
- The program dependence graph and its use in optimizationACM Transactions on Programming Languages and Systems, 1987
- A linear-time algorithm for a special case of disjoint set unionJournal of Computer and System Sciences, 1985
- Worst-case Analysis of Set Union AlgorithmsJournal of the ACM, 1984
- Applications of Path Compression on Balanced TreesJournal of the ACM, 1979
- A fast algorithm for finding dominators in a flowgraphACM Transactions on Programming Languages and Systems, 1979
- Algorithm 430 [H]: Immediate predominators in a directed graphCommunications of the ACM, 1972
- Object code optimizationCommunications of the ACM, 1969