diff --git a/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp b/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp index b711e33cfc0d6..fd2c02f022b9d 100644 --- a/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp +++ b/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp @@ -639,8 +639,13 @@ void PatternLowering::generate(SuccessNode *successNode, Block *¤tBlock) { SymbolRefAttr PatternLowering::generateRewriter( pdl::PatternOp pattern, SmallVectorImpl &usedMatchValues) { builder.setInsertionPointToEnd(rewriterModule.getBody()); + // Get the pattern name if available, otherwise use default + StringRef rewriterName = "pdl_generated_rewriter"; + if (auto symName = pattern.getSymName()) { + rewriterName = symName.value(); + } auto rewriterFunc = pdl_interp::FuncOp::create( - builder, pattern.getLoc(), "pdl_generated_rewriter", + builder, pattern.getLoc(), rewriterName, builder.getFunctionType({}, {})); rewriterSymbolTable.insert(rewriterFunc);