Based on dicussion in
this
thread the pattern to resolve the memref.dim of a value that is a
result of an operation that implements the
InferShapedTypeOpInterface is moved to a separate pass instead of
running it as a canonicalization pass. This allows shape resolution to
happen when explicitly required, instead of automatically through a
canonicalization.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Thanks for cleaning this up. I'm marking approve because I could be convinced about the naming but don't love it how it is spelled in this patch. Open to other opinions.
mlir/include/mlir/Dialect/MemRef/Transforms/Passes.td | ||
---|---|---|
26 | Given its narrow focus, I don't love this pass sitting on such a broad name. It seems likely that this will be confused with something broader that may come along later. Maybe resolve-shaped-type-result-dims? |
mlir/include/mlir/Dialect/MemRef/Transforms/Passes.td | ||
---|---|---|
26 | memref-resolve-dim-of-result-values ? (The summary works quite nice too :-)) |
mlir/include/mlir/Dialect/MemRef/Transforms/Passes.h | ||
---|---|---|
20 | Not due to this: but seems affine dialect is an outlier. |
Fix test error.
mlir/include/mlir/Dialect/MemRef/Transforms/Passes.td | ||
---|---|---|
26 | I'll go with resolve-shaped-type-result-dims. The only reason this pass is in memref dialect is because memref.dim is in memref dialect. Nothing specific to memref in this really. Can be confusing. |
Not due to this: but seems affine dialect is an outlier.