Make result ops generated output deterministic
Sort the result ops reported in lexographical order.
PiperOrigin-RevId: 271426258
diff --git a/third_party/mlir/tools/mlir-tblgen/RewriterGen.cpp b/third_party/mlir/tools/mlir-tblgen/RewriterGen.cpp
index 65453f0..7a125f5 100644
--- a/third_party/mlir/tools/mlir-tblgen/RewriterGen.cpp
+++ b/third_party/mlir/tools/mlir-tblgen/RewriterGen.cpp
@@ -417,7 +417,13 @@
{0}(MLIRContext *context)
: RewritePattern("{1}", {{)",
rewriteName, rootName);
- interleaveComma(resultOps, os, [&](const Operator *op) {
+ // Sort result operators by name.
+ llvm::SmallVector<const Operator *, 4> sortedResultOps(resultOps.begin(),
+ resultOps.end());
+ llvm::sort(sortedResultOps, [&](const Operator *lhs, const Operator *rhs) {
+ return lhs->getOperationName() < rhs->getOperationName();
+ });
+ interleaveComma(sortedResultOps, os, [&](const Operator *op) {
os << '"' << op->getOperationName() << '"';
});
os << formatv(R"(}, {0}, context) {{})", pattern.getBenefit()) << "\n";