Commit 4de5f79 1 parent 9d095ed commit 4de5f79 Copy full SHA for 4de5f79
File tree 1 file changed +12
-2
lines changed
lib/vast/Conversion/Parser
1 file changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -588,14 +588,24 @@ namespace vast::conv {
588
588
logical_result matchAndRewrite (
589
589
op_t op, adaptor_t adaptor, conversion_rewriter &rewriter
590
590
) const override {
591
- auto operand = adaptor.getResult ().getDefiningOp ();
592
- if (auto cast = mlir::dyn_cast< mlir::UnrealizedConversionCastOp >(operand)) {
591
+ auto operand = adaptor.getResult ();
592
+
593
+ if (auto cast = mlir::dyn_cast< mlir::UnrealizedConversionCastOp >(operand.getDefiningOp ())) {
593
594
if (pr::is_parser_type (cast.getOperand (0 ).getType ())) {
594
595
rewriter.replaceOpWithNewOp < op_t >(op, cast.getOperand (0 ));
595
596
return mlir::success ();
596
597
}
597
598
}
598
599
600
+ if (pr::is_parser_type (operand.getType ())) {
601
+ rewriter.replaceOpWithNewOp < op_t >(op, operand);
602
+ return mlir::success ();
603
+ }
604
+
605
+ auto cast = rewriter.create < mlir::UnrealizedConversionCastOp >(
606
+ op.getLoc (), pr::MaybeDataType::get (op.getContext ()), operand
607
+ );
608
+ rewriter.replaceOpWithNewOp < op_t >(op, cast.getResult (0 ));
599
609
return mlir::success ();
600
610
}
601
611
You can’t perform that action at this time.
0 commit comments