[PATCH] D148159: [mlir][TransformDialect] Simplify the lowering of pack/unpack when these are just pad/unpad
Quentin Colombet via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 13 02:37:50 PDT 2023
qcolombet marked 10 inline comments as done.
qcolombet added inline comments.
================
Comment at: mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp:839
+ /*strides=*/ones);
+ LLVM_DEBUG(DBGSNL(); DBGSNL(); DBGSNL();
+ DBGS() << "insert_slice op: " << replacementOp; DBGSNL(););
----------------
nicolasvasilache wrote:
> 3 newlines ? :)
It was like that in the exiting code :).
Removed it.
================
Comment at: mlir/test/Dialect/Linalg/transform-lower-pack.mlir:41
+ // CHECK: %[[EMPTY:.*]] = tensor.empty() : tensor<1x1x1x1x136x64x16x16xf32>
+ // CHECK: %[[RES:.*]] = tensor.insert_slice %[[PAD]] into %[[EMPTY]]
+ // offsets.
----------------
nicolasvasilache wrote:
> mravishankar wrote:
> > I wondering if we even want to have an `insert_slice` here? we could just do a `reshape` here. In which case the only difference is whether there is a transpose or not? If we can teach bufferization to handle this reshape without introducing additional buffers, that'd be very useful (we used to have a `memref.reshape` to just change the indexing, wonder if we still have that).
> In principle we could but I'd like to see how these things connect in practice.
>
> At the graph level, reshapes tend to simplify reasonably well.
> At the codegen level, as soon as we start tiling and taking slices, reshapes don't behave properly atm.
>
> I'd say this is dependent on where we apply the lowering and we will likely want this to be configurable in the future, based on data.
>
Alright I'll land as is and we'll revisit later then.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D148159/new/
https://reviews.llvm.org/D148159
More information about the llvm-commits
mailing list