================ @@ -1216,10 +1220,19 @@ void ConversionPatternRewriterImpl::resetState(RewriterState state) { replacedOps.pop_back(); } -void ConversionPatternRewriterImpl::undoRewrites(unsigned numRewritesToKeep) { +void ConversionPatternRewriterImpl::undoRewrites(unsigned numRewritesToKeep, + StringRef patternName) { for (auto &rewrite : - llvm::reverse(llvm::drop_begin(rewrites, numRewritesToKeep))) + llvm::reverse(llvm::drop_begin(rewrites, numRewritesToKeep))) { + if (!config.allowPatternRollback && + !isa<UnresolvedMaterializationRewrite>(rewrite)) { + // Unresolved materializations can always be rolled back (erased). + std::string errorMessage = "pattern '" + std::string(patternName) + + "' rollback of IR modifications requested"; + llvm_unreachable(errorMessage.c_str()); ---------------- zero9178 wrote:
```suggestion llvm::report_fatal_error("pattern '" + patternName + "' rollback of IR modifications requested"); ``` `llvm_unreachable` might not expand to `report_fatal_error`. I think it'd be better to call it directly. https://github.com/llvm/llvm-project/pull/136490 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits