Issue No. 03 - March (1992 vol. 18)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.126773
<p>A single method for normalizing the control-flow of programs to facilitate program transformations, program analysis, and automatic parallelization is presented. While previous methods result in programs whose control flowgraphs are reducible, programs normalized by this technique satisfy a stronger condition than reducibility and are therefore simpler in their syntax and structure than with previous methods. In particular, all control-flow cycles are normalized into single-entry, single-exit while loops and all GOTOs are eliminated. Furthermore, the method avoids problems of code replication that are characteristic of node-splitting techniques. This restructuring obviates the control dependence graph, since afterwards control dependence relations are manifest in the syntax tree of the program. Transformations that effect this normalization are presented, and the complexity of the method is studied.</p>
control-flow normalization algorithm; complexity; automatic parallelization; control flowgraphs; control-flow cycles; GOTOs; node-splitting techniques; control dependence relations; syntax tree; computational complexity; graph theory; parallel algorithms; structured programming
Z. Ammarguellat, "A Control-Flow Normalization Algorithm and its Complexity," in IEEE Transactions on Software Engineering, vol. 18, no. , pp. 237-251, 1992.