Abstract
To exploit instruction level parallelism in programs over multiple basic blocks, programs should have reducible control flow graphs. However not all programs satisfy this property. A new method, called Controlled Node Splitting (CNS), for transforming irreducible control flow graphs to reducible control flow graphs is presented. CNS duplicates nodes of the control flow graph to obtain reducible control flow graphs. CNS results in a minimum number of splits and a minimum number of duplicates. Since the computation time to find the optimal split sequence is large, a heuristic has been developed. The results of this heuristic are close to the optimum. Straightforward application of node splitting may result in an average code size increase of 235%. CNS with the heuristic limits the increase to only 3%.
Chapter PDF
Similar content being viewed by others
Keywords
References
Jan Hoogerbrugge and Henk Corporaal. Transport-triggering vs. operationtriggering. In Lecture Notes in Computer Science 786, Compiler Construction, pages 435–449. Springer-Verlag, 1994.
D. Bernstein and M. Rodeh. Global instruction scheduling for superscalar machines. In Proc. of the ACM SIGPLAN 1991 conference on Programming Language Design and Implementation, pages 241–255, June 1991.
Barbara G. Ryder and Marvin C. Paull. Elimination algorithms for data flow analysis. ACM Computing Surveys, 18(3):277–316, September 1986.
Ana M. Erosa and Laurie J. Hendren. Taming control flow: A structured approach to eliminating goto statements. In Proceedings of the 1994 International Conference on Computer Languages, pages 229–240, Toulouse, France, May 1994.
Zahira Ammarguellat. A control-flow normalization algorithm and its complexity. IEEE Transaction on software engineering, 18(3):237–251, March 1992.
John Cocke and Raymond E. Miller. Some analysis techniques for optimizing computer programs. In Proceedings of 2nd Hawaii Conference on System Sciences, pages 143–146, 1969.
Matthew S. Hecht. Flow Analysis of Computer Programs. Programming Languages Series. Elsevier North-Holland, 1977.
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley Series in Computer Science. Addison-Wesley Publishing Company, 1988.
J. Cocke. On certain graph-theoretic properties of programs. Technical Report Research Report RC-3391, T.J. Watson Research Center, 1971.
F.E. Allen. A basis for program optimization. In Proceedings of 1971 IFIP Congress, pages 385–390, Amsterdam, 1971. IEEE, North Holland Publ..
F.E. Allen and J. Cocke. A program data flow analysis procedure. Commun. ACM, 19(3):137–147, March 1976.
M.S. Hecht and J.D. Ullman. Flow graph reducibility. SIAM J. Computing, 1(2):188–202, 1972.
Johan Janssen and Henk Corporaal. Making graphs reducible with controlled node splitting. Technical Report JJ-9501, Delft University of Technology, Department of Electrical Engineering, 1995.
Henk Corporaal and Hans (J.M.) Mulder. MOVE: A framework for highperformance processor design. In Supercomputing-91, pages 692–701, Albuquerque, November 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Janssen, J., Corporaal, H. (1996). Controlled Node Splitting. In: Gyimóthy, T. (eds) Compiler Construction. CC 1996. Lecture Notes in Computer Science, vol 1060. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61053-7_52
Download citation
DOI: https://doi.org/10.1007/3-540-61053-7_52
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61053-3
Online ISBN: 978-3-540-49939-8
eBook Packages: Springer Book Archive