Loop Transformations: Cutting and Peeling
This MR introduces a number of loop transformations and their prequesites to the new backend.
- Add
CanonicalClonepass: Clone an AST and duplicate all symbols declared inside it to retain canonicality - Add
ReshapeLoopspass collection:-
cut_loopreimplements loop cutting like available through the oldpystencils.transformations.cut_loop -
peel_loop_frontimplements loop peeling, often the better alternative tocut_loop
-
Changes on the side:
- Move canonical duplication of symbols to the
KernelCreationContext - Add documentation for the
transformationsmodule - Extend documentation of
KernelCreationContext - Improved
AstFactoryinterface: introduceparse_indexand clarify type hints
To Do:
-
Test cases for loop cutting -
Test cases for loop peeling
Edited by Frederik Hennig