[llvm] [GlobalISel] Lazily reserve worklist maps (NFC) (PR #221900)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 8 00:32:27 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-globalisel

Author: Cullen Rhodes (c-rhodes)

<details>
<summary>Changes</summary>

Small -0.03% geomean improvement on CTMark aarch64-O0-g, but consistent little improvements across the board.

https://llvm-compile-time-tracker.com/compare.php?from=97cbc1e404b980edc58bfbcabb6f1c61793b624b&to=1729db67721b79fcb72469111d543e6df28c1185&stat=instructions:u

Assisted-by: codex

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


1 Files Affected:

- (modified) llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h (+2-4) 


``````````diff
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h b/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h
index dba3a8a14480c..709490fcfc0f8 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h
@@ -33,8 +33,6 @@ class GISelWorkList {
 #endif
 
 public:
-  GISelWorkList() : WorklistMap(N) {}
-
   bool empty() const { return WorklistMap.empty(); }
 
   unsigned size() const { return WorklistMap.size(); }
@@ -60,8 +58,8 @@ class GISelWorkList {
   // It also asserts if there are any duplicate elements found.
   void finalize() {
     assert(WorklistMap.empty() && "Expecting empty worklistmap");
-    if (Worklist.size() > N)
-      WorklistMap.reserve(Worklist.size());
+    if (!Worklist.empty())
+      WorklistMap.reserve(Worklist.size() > N ? Worklist.size() : N);
     for (unsigned i = 0; i < Worklist.size(); ++i)
       if (!WorklistMap.try_emplace(Worklist[i], i).second)
         llvm_unreachable("Duplicate elements in the list");

``````````

</details>


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


More information about the llvm-commits mailing list