[llvm] [TableGen] Fix the non-determinism in DFAPacketizerEmitter.cpp (PR #192037)

via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 14 04:19:12 PDT 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-tablegen

Author: David Stuttard (dstutt)

<details>
<summary>Changes</summary>

Sort the std::set ProcItinList by Record name, not the pointer address.


---
Full diff: https://github.com/llvm/llvm-project/pull/192037.diff


1 Files Affected:

- (modified) llvm/utils/TableGen/DFAPacketizerEmitter.cpp (+7-1) 


``````````diff
diff --git a/llvm/utils/TableGen/DFAPacketizerEmitter.cpp b/llvm/utils/TableGen/DFAPacketizerEmitter.cpp
index 8cb2c22736f8a..bd29f73dc484a 100644
--- a/llvm/utils/TableGen/DFAPacketizerEmitter.cpp
+++ b/llvm/utils/TableGen/DFAPacketizerEmitter.cpp
@@ -101,7 +101,13 @@ int DFAPacketizerEmitter::collectAllFuncUnits(
   LLVM_DEBUG(dbgs() << "collectAllFuncUnits");
   LLVM_DEBUG(dbgs() << " (" << ProcModels.size() << " itineraries)\n");
 
-  std::set<const Record *> ProcItinList;
+  struct RecordNameLess {
+    bool operator()(const Record *LHS, const Record *RHS) const {
+        return LHS->getName() < RHS->getName();
+    }
+  };
+
+  std::set<const Record *, RecordNameLess> ProcItinList;
   for (const CodeGenProcModel *Model : ProcModels)
     ProcItinList.insert(Model->ItinsDef);
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/192037


More information about the llvm-commits mailing list