This Article 
 Bibliographic References 
 Add to: 
Unroll-Based Copy Elimination for Enhanced Pipeline Scheduling
September 2002 (vol. 51 no. 9)
pp. 977-994

Abstract—Enhanced pipeline scheduling (EPS) is a software pipelining technique which can achieve a variable initiation interval (II) for loops with control flow via its code motion pipelining. EPS, however, leaves behind many renaming copy instructions that cannot be coalesced due to interferences. These copies take resources and, more seriously, they may cause a stall if they rename a multilatency instruction whose latency is longer than the II aimed for by EPS. This paper proposes a code transformation technique based on loop unrolling which makes those copies coalescible. Two unique features of the technique are its method of determining the precise unroll amount, based on an idea of extended live ranges, and its insertion of special bookkeeping copies at loop exits. The proposed technique enables EPS to avoid a serious slowdown from latency handling and resource pressure, while keeping its variable II and other advantages. In fact, renaming through copies, followed by unroll-based copy elimination, is EPS's solution to the cross-iteration register overwrite problem in software pipelining. It works for loops with arbitrary control flow that EPS must deal with, as well as for straightline loops. Our empirical study performed on a VLIW testbed with a two-cycle load latency shows that 86 percent of the otherwise uncoalescible copies in innermost loops become coalescible when unrolled 2.2 times on average. In addition, it is demonstrated that the unroll amount obtained is precise and the most efficient. The unrolled version of the VLIW code includes fewer no-op VLIWs caused by stalls, improving the performance by a geometric mean of 18 percent on a 16-ALU machine.

[1] S.-M. Moon and K. Ebcioglu, “Performance Analysis of Tree VLIW Architecture for Exploiting Branch ILP in Non-Numerical Code,” Proc. Int'l Conf. Supercomputing (ICS-14), pp. 301-308, July 1997.
[2] S.-M. Moon and K. Ebcioglu, “Parallelizing Nonnumerical Code with Selective Scheduling and Software Pipelining,” ACM Trans. Programming Languages and Systems, vol. 19, no. 6, pp. 853-898, Nov. 1997.
[3] K. Ebioglu and T. Nakatani,“A new compilation technique for parallelizing loops with unpredictable branches on a VLIW architecture,” Languages and Compilers for Parallel Computing, pp. 213-229.Cambridge, Mass.: MIT Press, 1990.
[4] V.H. Allan, R.B. Jones, R.M. Lee, and S.J. Allan, “Software Pipelining,” ACM Computing Surveys, vol. 27, no. 3, pp. 367-432, Sept. 1995.
[5] B.R. Rau and C.D. Glaeser,“Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientificcomputing,” Proc. 14th Ann. Workshop Microprogramming, pp. 183-198, Oct. 1981.
[6] N. Warter and N. Partamian, Modulo Scheduling with Multiple Initiation Intervals Proc. 28th Int'l Symp. Microarchitecture, pp. 111-118, Nov. 1995.
[7] M.G. Stoodley and C.G. Lee, “Software Pipelining Loops with Conditional Branches,” Proc. 29th Ann. Workshop Microprogramming (Micro-29), 1996,
[8] D. Lavery and W.-M Hwu, “Modulo Scheduling of Loops in Control-Intensive Non-Numerical Programs,” Proc. 29 Ann. Workshop Microprogramming (Micro-29), pp. 126-137, 1996.
[9] A. Aiken, A. Nicolau, and S. Novack, “Resource-Constrained Software Pipelining,” IEEE Trans. Parallel and Distributed Systems, vol. 6, no. 12, pp. 1248-1269, Dec. 1995.
[10] J.C. Dehner, P.Y.T. Hsu, and J.P. Bratt, "Overlapped Loop Support in the Cydra 5," Proc. ACM Int'l Conf. Architectural Support for Programming Languages and Operating Systems, 1989.
[11] M. Lam, "Software Pipelining: An Effective Scheduling Technique for VLIW Machines," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, 1988.
[12] S. Jain, “Circular Scheduling: A New Technique to Perform Software Pipelining,” Proc. ACM SIGPLAN '91 Conf. Programming Language Design and Implementation, pp. 219-228, June 1991.
[13] S.M. Shim and S.-M. Moon, “Split-Path Enhnaced Pipeline Scheduling for Loops with Control Flows,” Proc. Micro-31, pp. 93-102, 1998.
[14] B. Rau, “Data Flow and Dependence Analysis for Instruction Level Parallelism,” Languages and Compilers for Parallel Computing, pp. 236-250, MIT Press, 1994.
[15] L. George and A. Appel, “Iterated Register Coalescing,” ACM Trans. Programming Languages and Systems, vol. 18, no. 3, pp. 300-324, May 1996.
[16] P. Briggs et al., "Improvements to Graph Coloring Register Allocation," ACM Trans. Programming Languages and Systems (TOPLAS), Vol. 16, No. 3, May 1994, pp. 428-455.
[17] S. Park, S. Shim, and S.-M. Moon, “Evaluation of Scheduling Techniques on a SPARC-Based VLIW Testbed,” Proc. 30th Ann. Int'l Symp. Microarchitecture, Dec. 1997.
[18] J. Park and S.-M. Moon, “Optimistic Register Coalescing,” Proc. 1998 Int'l Conf. Parallel Architecture and Compilation Techniques, pp. 196-204, 1998.
[19] B. Steffen, “Property-Oriented Expansion,” Proc. Third Static Analysis Symp. (SAS '96), pp. 22-41, 1996.
[20] S. Kim et al., “Unroll-Based Copy Coalescing,” technical report, Seoul National Univ., 1997.

Index Terms:
Software pipelining, enhanced pipeline scheduling, renaming, unrolling, coalescing, modulo scheduling, modulo variable expansion, register allocation, iterated coalescing.
Suhyun Kim, Soo-Mook Moon, Jinpyo Park, Kemal Ebcioglu, "Unroll-Based Copy Elimination for Enhanced Pipeline Scheduling," IEEE Transactions on Computers, vol. 51, no. 9, pp. 977-994, Sept. 2002, doi:10.1109/TC.2002.1032620
Usage of this product signifies your acceptance of the Terms of Use.