Skip to content

Commit 1547fe8

Browse files
authored
[Vector Linearize] Use upstream linearize for poison op (#1112)
Upstream handles linearization of poison op so no need to have separate pattern im imex linearization pass
1 parent 0e85b46 commit 1547fe8

File tree

1 file changed

+0
-28
lines changed

1 file changed

+0
-28
lines changed

lib/Transforms/VectorLinearize.cpp

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,6 @@ namespace imex {
3939

4040
namespace {
4141

42-
struct UBPoisonOpConversion final
43-
: public mlir::OpConversionPattern<mlir::ub::PoisonOp> {
44-
using OpConversionPattern::OpConversionPattern;
45-
mlir::LogicalResult
46-
matchAndRewrite(mlir::ub::PoisonOp poisonOp, OpAdaptor adaptor,
47-
mlir::ConversionPatternRewriter &rewriter) const override {
48-
auto dstTy = getTypeConverter()->convertType(poisonOp.getType());
49-
if (!dstTy)
50-
return rewriter.notifyMatchFailure(poisonOp, "cannot convert type.");
51-
52-
rewriter.replaceOpWithNewOp<mlir::ub::PoisonOp>(poisonOp, dstTy);
53-
return mlir::success();
54-
}
55-
};
56-
5742
struct VectorLinearizePass final
5843
: public imex::impl::VectorLinearizeBase<VectorLinearizePass> {
5944

@@ -130,23 +115,10 @@ struct VectorLinearizePass final
130115
mlir::ConversionTarget target(*context);
131116
typeConverter.addConversion([](mlir::Type type) { return type; });
132117

133-
target.addDynamicallyLegalOp<mlir::ub::PoisonOp>(
134-
[&](mlir::ub::PoisonOp op) {
135-
auto ty = op->getResult(0).getType();
136-
auto vecTy = mlir::dyn_cast_or_null<mlir::VectorType>(ty);
137-
return vecTy && vecTy.getRank() == 1;
138-
});
139-
140118
target.addIllegalOp<mlir::vector::TransposeOp>();
141119
target.addLegalOp<mlir::vector::ShapeCastOp>();
142120
target.addLegalOp<mlir::vector::ExtractOp>();
143121
target.addLegalDialect<mlir::xegpu::XeGPUDialect>();
144-
145-
patterns.add<UBPoisonOpConversion>(typeConverter, context);
146-
147-
if (mlir::failed(mlir::applyPartialConversion(getOperation(), target,
148-
std::move(patterns))))
149-
return signalPassFailure();
150122
}
151123
};
152124
} // namespace

0 commit comments

Comments
 (0)