Abstract
Software pipelining loops containing multiple paths is a very difficult problem. Loop shifting offers the possibility of a close to optimal schedule with acceptable code growth. Deciding how often to shift each operation is difficult, and existing heuristics are rather ad hoc. We separate loop shifting from scheduling, and present new, non-greedy heuristics. Experimental results show that our approach yields better performance and less code growth.
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
Alexander Aiken and Alexandru Nicolau. A realistic resource-constrained software pipelining algorithm. Advances in Languages and Compilers for Parallel Computing, pages 274–290, 1990. 199
Gang Chen, Cliff Young, and Michael Smith. Practical and profitable alternatives to greedy, single-path scheduling. Harvard University. Submitted to MICRO 31, November 1998. 192
Alain Darte and Guillaume Huard. Loop shifting for loop compaction. Technical report, Ecole Normale Sup/’erieure de Lyon, 1999. 189, 200
S. Jain. Circular scheduling: A new technique to perform software pipelining. In SIGPLAN 91 Conference on Programming Language Design and Implementation, pages 219–228, June 1991. 189, 190
Monica Lam. Software pipelining: An efficient scheduling technique for VLIW machines. In Proceedings of the SIGPLAN 88 Symposium on Programming Language Design and Implementation, pages 318–328. ACM, June 1988. 192
S. Moon and K. Ebcioğlu. Parallelisizing nonnumerical code with selective scheduling and software pipelining. ACM Transactions on Programming Languages and Systems, 19(6):853–898, November 1997. 189, 190, 192, 196
Toshio Nakatani and Kemal Ebcioğlu. Making compaction-based parallelization affordable. IEEE Transactions on Parallel and Distributed Systems, 4(9):1014–1029, September 1993. 197
Steve Novack and Alexandru Nicolau. Resource directed loop pipelining: Exposing just enough parallelism. The Computer Journal, 10(6), 1997. 189, 190, 199
B. Ramakrishna Rau. Iterative modulo scheduling: An algorithm for software pipelining loops. In 27th Annual International Conference on Microarchitecture. ACM, December 1994. 189
M. Stoodley and C. Lee. Software pipelining of loops with conditional branches. In 29th International Symposium on Microarchitecture (MICRO-29), pages 262–273. IEEE/ACM, December 1996. 199
SangMin Shim and Soo-Mook Moon. Split-path enhanced pipeline scheduling for loops with control flows. In Micro 31, pages 290–302. ACM/IEEE, November 1998. 199
Jian Wang and Christine Eisenbeis. Decomposed software pipelinig. Rapports de Recherche 1838, INRIA Rocquencourt, F-79153 Le Chesnay Cedex, January 1993. 191, 199
Nancy J. Warter-Perez and Noubar Partamnian. Modulo scheduling with multiple initiation intervals. In 28th Annual International Conference on Microarchitecture, pages 111–118. ACM, December 1995. 199
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gregg, D. (2000). Global Software Pipelining with Iteration Preselection. In: Watt, D.A. (eds) Compiler Construction. CC 2000. Lecture Notes in Computer Science, vol 1781. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46423-9_13
Download citation
DOI: https://doi.org/10.1007/3-540-46423-9_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67263-0
Online ISBN: 978-3-540-46423-5
eBook Packages: Springer Book Archive