| Jack W. Davidson and Sanjay Jinturkar. Aggressive loop unrolling in a retargetable optimizing compiler. In Compiler Construction, 6th International Conference, volume 1060, pages 59--73, 24--26 April 1996. |
.... the unrolling factor (i.e. the number of time the loop body is replicated) Because of the lack of technique to compute the unrolling factor taking into account all the side effects of the transformation, most compilers use a small and constant unrolling factor (typically 2 or 4) As mentioned in [5], employing simple local loop unrolling strategy misses many opportunities for improving the performance. Figure 1 shows the execution time of a loop for unrolling factor from 1 to 256. Small unrolling factors do not enable to get the best performance, there is benefit to aggressively unroll the ....
....time of the loop decreases. In trace scheduling and global compaction methodology, loop unrolling is a key feature[10, 9] All these studies put forward the opportunities of loop unrolling to improve performance, but none consider loop with bound known at execution time. Davidson and Jinturkar [5] go one step further by unrolling loops with iteration counts known both at 11 2e 07 4e 07 6e 07 8e 07 1e 08 1.2e 08 1.4e 08 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 3200 code size Model Simulator SimulatorWithoutDataMissAndStartingTime Unroll2 Unroll4 Unroll8 ....
Jack W. Davidson and Sanjay Jinturkar. Aggressive loop unrolling in a retargetable optimizing compiler. In Compiler Construction, 6th International Conference, volume 1060, pages 59--73, 24--26 April 1996.
....to something cheaper even if its computation cannot be eliminated entirely. While our implementation uses such information in its benefit estimation, we do not pursue the details here due to space constraints. 4 Freq(I) refers to the dynamic execution frequency of the instruction. see [11]) For this reason, the decision as to whether the loop should actually be unrolled is not made at the time of the cost benefit computation, but later, based in part on information obtained from value and expression profiling (see Section 3) If benefit information is propagated around the loop ....
.... of unrollings is based on the sizes of the bodies of the loop under consideration as well as those of any loops in which it is nested, together with the size of the instruction cache, so as to avoid excessive unrolling that could adversely affect the i cache utilization of the program (e.g. see [11]) Control is transferred to the unrolled loop by testing the register r controlling the number of iterations against a particular value v, as for the basic transformation above. Once the code has been transformed as described, the information that r has the value v when control reaches the ....
J. W. Davidson and S. Jinturkar, "Aggressive Loop Unrolling in a Retargetable Optimizing Compiler", in Proc. CC'96: Compiler Construction, April 1996.
....topic and Chapter 9 gives the conclusions for the thesis. CHAPTER 2 RELATED WORK There has been some research on techniques for avoiding the execution of conditional branches. Loop unrolling has been used to avoid executions of the conditional branch associated with a loop termination condition [1]. Figure 2.1 gives an example of loop unrolling. for (i = 0; i 100; i = 4) f(i) f(i 3) f(i) f(i 1) f(i 2) b) After Loop Unrolling f(i) for (i = 0; i 102; i ) a) Before Loop Unrolliing for ( i 102; i ) Figure 2.1: Loop Unrolling To perform loop unrolling, in ....
J. W. Davidson and S. Jinturkar, "Aggressive loop unrolling in a retargetable, optimizing compiler", Proceedings of Compiler Construction Conference, pp. 59--73, April 1996.
....branch instructions. The primary effect is a reduction in the total number of instructions executed by the CPU when the loop is executed. In addition, loop unrolling, in conjunction with other code optimizations, can increase instruction level parallelism and improve memory hierarchy locality [Alex93, Baco94, Davi94, Davi96, Mahl92], as described in chapter four and chapter five. A detailed example of loop unrolling has already been presented in chapter 2. Chapter 3: Loop Unrolling 35 When implementing loop unrolling in a production compiler, three obvious questions are: when should loop unrolling be done, how should it be ....
Davidson, J. W. and Jinturkar, S., "Aggressive Loop Unrolling in Retargetable, Optimizing Compiler", Proceedings of the Sixth International Conference on Compiler Construction, Springer Verlag Lecture Notes in Computer Science, Linkoping, Sweden, April 1996, pp. 59-73.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC