[Mlir-commits] [mlir] [mlir] canonicalizer: shape_cast(poison) -> poison (PR #133988)
Diego Caballero
llvmlistbot at llvm.org
Wed Apr 9 04:09:40 PDT 2025
================
@@ -5611,28 +5612,27 @@ LogicalResult ShapeCastOp::verify() {
}
OpFoldResult ShapeCastOp::fold(FoldAdaptor adaptor) {
+
// No-op shape cast.
- if (getSource().getType() == getResult().getType())
+ if (getSource().getType() == getType())
return getSource();
// Canceling shape casts.
if (auto otherOp = getSource().getDefiningOp<ShapeCastOp>()) {
- if (getResult().getType() == otherOp.getSource().getType())
- return otherOp.getSource();
- // Only allows valid transitive folding.
- VectorType srcType = llvm::cast<VectorType>(otherOp.getSource().getType());
- VectorType resultType = llvm::cast<VectorType>(getResult().getType());
- if (srcType.getRank() < resultType.getRank()) {
- if (!isValidShapeCast(srcType.getShape(), resultType.getShape()))
+ // Only allows valid transitive folding (expand/collapse dimensions).
+ VectorType srcType = otherOp.getSource().getType();
+ if (getType() == srcType)
----------------
dcaballe wrote:
I would keep the `resultType` variable since the type is used multiple times and makes the reading easier
https://github.com/llvm/llvm-project/pull/133988
More information about the Mlir-commits
mailing list