Scheduling transformations reorder a program's operations to improve locality and/or parallelism. The polyhedral model is a general framework for composing and applying instancewise scheduling transformations for loop-based programs, but there is no analogous framework for recursive programs. This paper presents an approach for composing and applying scheduling transformations-like inlining, interchange, and code motion-to nested recursive programs. This paper describes the phases of the approach-representing dynamic instances, composing and applying transformations, reasoning about correctness-and shows that these techniques can verify the soundness of composed transformations.
PolyRec REF is a framework that can handle schedule transformations for nested recursive programs only.
Composable, sound transformations of nested recursion and loops
PLDI 2019
Computer Science