Algorithm 430 [H]: Immediate predominators in a directed graph
- 1 August 1972
- journal article
- Published by Association for Computing Machinery (ACM) in Communications of the ACM
- Vol. 15 (8) , 777-778
- https://doi.org/10.1145/361532.361566
Abstract
We assume a directed graph whose nodes are labeled by integers between 1 and n. The arcs of this graph correspond to the flow of control between blocks of a computer program. The initial node of this graph (corresponding to the entry point of the program) is labeled by the integer 1. For optimizing the object code generated by a compiler, the relationship of immediate predominator has been used by Lowry and Medlock [3]. We say that node i predominates node k if every path from node 1 to node k passes through (i.e. both into and out of) node i. Node j is an immediate predominator of node k if node j predominates node k and if every other node i which predominates node k also predominates node j. It can easily be proved that if k ≠ 1 and node k is reachable from node 1t hen node k has exactly one immediate predominator. In case k = 1, or node k is not reachable from node 1, the immediate predominator of node k is undefined, and the value 0 will be given by the procedure PREDOMINATOR.Keywords
This publication has 4 references indexed in Scilit:
- A transitive closure algorithmBIT Numerical Mathematics, 1970
- Object code optimizationCommunications of the ACM, 1969
- A Theorem on Boolean MatricesJournal of the ACM, 1962
- A note on two problems in connexion with graphsNumerische Mathematik, 1959