What's in a region?
- 1 March 1993
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Letters on Programming Languages and Systems
- Vol. 2 (1-4) , 1-16
- https://doi.org/10.1145/176454.176456
Abstract
Regions of control dependence identify the instructions in a program that execute under the same control conditions. They have a variety of applications in parallelizing and optimizing compilers. Two vertices in a control-flow graph (which may represent instructions or basic blocks in a program) are in the same region if they have the same set of control dependence predecessors. The common algorithm for computing regions examines each control dependence at least once. As there may be O(V x E) control dependences in the worst case, where V and E are the number of vertices and edges in the control-flow graph, this algorithm has a worst-case running time of O(V x D). We present algorithms for finding regions in reducible control-flow graphs in near-linear time, without using control dependence. These algorithms are based on alternative definitions of regions, which are easier to reason with than the definitions based on control dependence.Keywords
This publication has 3 references indexed in Scilit:
- Integrating noninterfering versions of programsACM Transactions on Programming Languages and Systems, 1989
- The program dependence graph and its use in optimizationACM Transactions on Programming Languages and Systems, 1987
- Fast Algorithms for Solving Path ProblemsJournal of the ACM, 1981