next up previous
Next: Min/Max Reductions Up: Techniques for Parallelizing Previous: Structure Access Pipelining

Loop Rotation

In the CFP96 code applu several loop-carried dependences exist in the main time-stepping loop in subroutine SSOR. However, through a technique dubbed loop rotation, the loop-carried dependences on the array variable rsd can be broken via privatization. The technique is akin to a partial peeling operation which involves rotating the body of the loop in order to move the write of rsd to the head of the loop, thereby allowing it to be privatized. The portion of the first iteration which was partially peeled is duplicated in a prologue to the loop, and the corresponding portion (partially peeled from the final iteration) is likewise duplicated in an epilogue.



Bill Pottenger
Wed Jun 12 10:43:24 CDT 1996