Abstract
Global instruction scheduling allows operations to move across basic block boundaries to create tighter schedules. When operations move above control flow joins, some code duplication is generally necessary to preserve semantics. Tail duplication and compensation code are approaches to duplicating the necessary code, used by Superblock Scheduling and Trace Scheduling respectively. Compensation code needs much more engineering effort, but offers the possibility of less code growth. We implemented both algorithms to evaluate whether the extra effort is worthwhile. Experimental results show that trace scheduling does not always create less code growth and often creates more.
This work was supported by the Austrian Science Foundation (FWF) Project P13444-INF
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Pohua P. Chang, William Y. Chen, Scott A. Mahlke, and Wen mei W. Hwu. Impact: An architectural framework for multiple-instruction-issue processors. In Proceedings of the 18th Annual International Symposium on Computer Architecture, pages 266–275. IEEE, May 1991.
John R. Ellis. Bulldog: A Compiler for VLIW Architectures. MIT Press, 1985.
Joseph A. Fisher, John R. Ellis, John C. Ruttenberg, and Alexandru Nicolau. Parallel processing: A smart compiler and a dumb machine. In ACM’ 84 Symposium on Compiler Construction, pages 37–47. ACM, June 1984.
Stefan M. Freudenberger, Thomas R. Gross, and P. Geoffrey Lowney. Avoidance and suppression of compensating code in a trace scheduling compiler. ACM Transactions on Programming Languages and Systems, 16(4):1156–1214, 1994.
Joseph A. Fisher. Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers, 30(7):478–490, July 1981.
David Gregg. Global software pipelining with iteration preselection. In CC-2000 International Conference on Compiler Construction, LNCS 1781, March 2000.
Wen-mei Hwu, Scott Mahlke, William Chen, Pohua Chang, Nancy Warter, Roger Bringmann, Roland Oullette, Richard Hank, Tokuzo Kiyohara, Grant Haab, John Holm, and Daniel Lavery. The superblock: An effective tachnique for VLIW and superscalar compilation. The Journal of Supercomputing, pages 229–248, 1993.
Scott Alan Mahlke. Exploiting Instruction Level Parallelism in the Presence of Conditional Branches. PhD thesis, Department of Eletcrical and Computer Engineering, University of Illinois at Urbana-Champaign, 1996.
Scott A. Mahlke, William Y. Chen, Wen-mei W. Hwu, B. Ramakrishna Rau, and Michael S. Schlansker. Sentinel scheduling for VLIW and superscalar processors. In Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 238–247. ACM, September 1992.
Mayan Moudgill. Implementing and Exploiting Static Speculation and Multiple Issue Processors. PhD thesis, Cornell University, May 1994.
Mayan Moudgill. Source code of the chameleon compiler. The source code is the only written description of the EPS++ algorithm, 1997.
S. Park, S. Shim, and S. Moon. Evaluation of scheduling techniques on a sparc-based VLIW testbed. In 30th International Symposium on Microarchitecture. IEEE, November 1997.
S. Banerjia W. Havanki and T. Conte. Treegion scheduling for wide-issue processors. In Proceedings of the 4th International Symposium on High-Performance Computer Architecture (HPCA-4), February 1998.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gregg, D. (2001). Comparing Tail Duplication with Compensation Code in Single Path Global Instruction Scheduling. In: Wilhelm, R. (eds) Compiler Construction. CC 2001. Lecture Notes in Computer Science, vol 2027. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45306-7_14
Download citation
DOI: https://doi.org/10.1007/3-540-45306-7_14
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41861-0
Online ISBN: 978-3-540-45306-2
eBook Packages: Springer Book Archive