This revision extracts padding hoisting in a new file and cleans it up in prevision of future improvements and extensions.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp | ||
---|---|---|
61 | Tiling can generate 4 kinds of loops: scf.for, scf.parallel, affine.for, tiled_loop. Will this always stay scf.for or do we want to extend this in the future? | |
122 | Is this to prevent the pattern from being applied to other pad_tensor ops (that may be created by the user)? I'm wondering if we could alternatively start with a pointer to a tiled Linalg op (which we should have after tiling) and get to the pad_tensor ops by checking its inputs. (Instead of looking for pad_tensor ops in the FuncOp.) |
mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp | ||
---|---|---|
61 | The code used to be written for more loop types but in practice it is unsupported and premature generalization. | |
104 | thanks for catching! | |
122 | This is because hoisting the output padding is not yet supported (i.e. there is something to be done for the writeback that isn't implemented). |
Nit: documentation for top-levle entity?