Abstract
We address the problem of time optimal software pipelining of loops with control flows, one of the most difficult open problems in the area of parallelizing compilers.We present a necessary condition for loops with control flows to have equivalent time optimal programs, generalizing the result by Schwiegelshohn et al., which has been the most significant theoretical result on the problem. As part of the formal treatment of the problem, we propose a new formalization of software pipelining, which provides a basis of our proof as well as a new theoretical framework for software pipelining research. Being the first generalized result on the problem, our work described in this paper forms an important first step towards time optimal software pipelining.
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
U. Schwiegelshohn, F. Gasperoni, and K. Ebcioğlu. On Optimal Parallelization of Arbitrary Loops. Journal of Parallel and Distributed Computing, 11(2):130–134, 1991.
A. Aiken and A. Nicolau. Perfect Pipelining. In Proceedings of the Second European Symposium on Programming, pages 221–235, June 1988.
K. Ebcioğlu. A Compilation Technique for Software Pipelining of Loops with Conditional Jumps. In Proceedings of the 20th Annual Workshop on Microprogramming (Micro-20), pages 69–79, 1987.
A. Zaky and P. Sadayappan. Optimal Static Scheduling of Sequential Loops with Tests. In Proceedings of the International Conference on Parallel Processing, pages 130–137, 1989.
A. Aiken and A. Nicolau. Optimal Loop Parallelization. In Proceedings of the SIGPLAN 1988 Conference on Programming Language Design and Implementation, pages 308–317, 1988.
F. Gasperoni and U. Schwiegelshohn. Generating Close to Optimum Loop Schedules on Parallel Processors. Parallel Processing Letters, 4(4):391–403, 1994.
F. Gasperoni and U. Schwiegelshohn. Optimal Loop Scheduling on Multiprocessors: A Pumping Lemma for p-Processor Schedules. In Proceedings of the 3rd International Conference on Parallel Computing Technologies, pages 51–56, 1995.
L.-F. Chao and E. Sha. Scheduling Data-Flow Graphs via Retiming and Unfolding. IEEE Transactions on Parallel and Distributed Systems, 8(12):1259–1267, 1997.
P.-Y. Calland, A. Darte, and Y. Robert. Circuit Retiming Applied to Decomposed Software Pipelining. IEEE Transactions on Parallel and Distributed Systems, 9(1):24–35, 1998.
F. Gasperoni and U. Schwiegelshohn. List Scheduling in the Presence of Branches: A Theoretical Evaluation. Theoretical Computer Science, 196(2):347–363, 1998.
A. Uht. Requirements for Optimal Execution of Loops with Tests. IEEE Transactions on Parallel and Distributed Systems, 3(5):573–581, 1992.
S.-M. Moon and S. Carson. Generalized Multi-way Branch Unit for VLIW Microprocessors. IEEE Transactions on Parallel and Distributed Systems, pages 850–862, 1995.
K. Ebcioğlu. Some Design Ideas for a VLIW Architecture for Sequential Natured Software. In Proceedings of IFIP WG 10.3 Working Conference on Parallel Processing, pages 3–21, 1988.
A. Aiken, A. Nicolau, and S. Novack. Resource-Constrained Software Pipelining. IEEE Transactions on Parallel and Distributed Systems, 6(12):1248–1270, 1995.
S.-M. Moon and K. Ebcioğlu. Parallelizing Non-numerical Code with Selective Scheduling and Software Pipelining. ACM Transactions on Programming Languages and Systems, pages 853–898, 1997.
V. Allan, R. Jones, R. Lee, and S. Allan. Software Pipelining. ACM Computing Surveys, 27(3):367–432, 1995.
D. Kuck, R. Kuhn, D. Padua, B. Leasure, and M. Wolfe. Dependence Graphs and Compiler Optimizations. In SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 207–218, 1981.
J. Farrante, K. Ottenstein, and J. Warren. The Program Dependence Graph and Its Use in Optimization. ACM Transactions on Programming Languages and Systems, 9(3):319–349, 1987.
K. Pingali, M. Beck, R. Johnson, M. Moudgill, and P. Stodghill. Dependence Flow Graphs: An Algebraic Approach to Program Dependences. In Proceedings of the 1991 Symposium on Principles of Programming Languages, pages 67–78, 1991.
M. Lam. Software Pipelining: An Effective Scheduling Technique for VLIW Machines. In Proceedings of the SIGPLAN 1988 Conference on Programming Language Design and Implementation, pages 318–328, 1988.
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
Yun, HS., Kim, J., Moon, SM. (2001). A First Step Towards Time Optimal Software Pipelining of Loops with Control Flows. 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_13
Download citation
DOI: https://doi.org/10.1007/3-540-45306-7_13
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