Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
@jpienaar Jacques, I put this pattern to Transform directory, because I am not really converting Shape Ops inside the reduction operator. The only thing that changes here is just the reduce op "expanded" as a loop.
I am also not completely happy with how I named the pass. So, suggestions are very-very welcome.
mlir/include/mlir/Dialect/Shape/Transforms/Passes.td | ||
---|---|---|
19 ↗ | (On Diff #270237) | All dialects share the same "namespace" of pass names, so I recommend calling it shape-* to avoid naming conflicts with other dialect passes. Also, lower-reduce-to-scf and lower-shape-to-shape would be my name preferences so it is consistent at a glance what are lowering passes. |
mlir/lib/Dialect/Shape/Transforms/ExpandReduce.cpp | ||
41 ↗ | (On Diff #270237) | llvm naming convention is extentTensor |
52 ↗ | (On Diff #270237) | should this use b instead of rewriter? |
57 ↗ | (On Diff #270237) | can you use mlir::inlineRegion for this? |
mlir/lib/Dialect/Shape/Transforms/ExpandReduce.cpp | ||
---|---|---|
57 ↗ | (On Diff #270237) | I am not sure that would look nicer since I need to convert shape.yield to scf.yield after inlining. Also blocks have different signatures. I would prefer to leave it as it is. |
Nice to see this become a thing!
mlir/lib/Dialect/Shape/Transforms/ShapeToSCFLowering.cpp | ||
---|---|---|
1 ↗ | (On Diff #270365) | Should this live in Conversion/ShapeToSCF? Only transformations within a dialect are in transforms IIUC. |
46 ↗ | (On Diff #270365) | This should be dim %extent, 0 and not rank. The rank of the extent tensor is always 1 (as it is a vector). |
62 ↗ | (On Diff #270365) | clone with a mapping already does this for you. |
65 ↗ | (On Diff #270365) | Can this be done with makeArrayRef? |
mlir/lib/Dialect/Shape/Transforms/ShapeToSCFLowering.cpp | ||
---|---|---|
1 ↗ | (On Diff #270365) | Yes, and it should not be called "lowering". That name was deprecated long time ago. |
mlir/lib/Dialect/Shape/Transforms/ShapeToSCFLowering.cpp | ||
---|---|---|
1 ↗ | (On Diff #270365) | Can you update the docs https://mlir.llvm.org/getting_started/Glossary/#lowering ? I was not aware of that deprecation. |
mlir/lib/Dialect/Shape/Transforms/ShapeToSCFLowering.cpp | ||
---|---|---|
65 ↗ | (On Diff #270365) | if we could lookup arrays of values, then yes. |
mlir/include/mlir/Conversion/ShapeToSCF/ShapeToSCF.h | ||
---|---|---|
15 | If I remember correctly, the using namespace mlir variant is preferred in LLVM. |
Neat!
mlir/include/mlir/Conversion/ShapeToSCF/ShapeToSCF.h | ||
---|---|---|
15 | Only for uses, not definitions. |
If I remember correctly, the using namespace mlir variant is preferred in LLVM.