Sciweavers

LCPC
2000
Springer

Recursion Unrolling for Divide and Conquer Programs

13 years 8 months ago
Recursion Unrolling for Divide and Conquer Programs
This paper presents recursion unrolling, a technique for improving the performance of recursive computations. Conceptually, recursion unrolling inlines recursive calls to reduce control flow overhead and increase the size of the basic blocks in the computation, which in turn increases the effectiveness of standard compiler optimizations such as register allocation and instruction scheduling. We have identified two transformations that significantly improve the effectiveness of the basic recursion unrolling technique. Conditional fusion merges conditionals with identical expressions, considerably simplifying the control flow in unrolled procedures. Recursion re-rolling rolls back the recursive part of the procedure to ensure that a large unrolled base case is always executed, regardless of the input problem size. We have implemented our techniques and applied them to an important class of recursive programs, divide and conquer programs. Our experimental results show that recursion unro...
Radu Rugina, Martin C. Rinard
Added 25 Aug 2010
Updated 25 Aug 2010
Type Conference
Year 2000
Where LCPC
Authors Radu Rugina, Martin C. Rinard
Comments (0)