[llvm] llvm-reduce: Avoid reallocating per chunk iteration (PR #135029)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 9 07:20:01 PDT 2025


https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/135029

None

>From 6e121b3e34d1b70814b227ae667ffec84033f0db Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Mon, 24 Oct 2022 21:05:04 -0700
Subject: [PATCH] llvm-reduce: Avoid reallocating per chunk iteration

---
 llvm/tools/llvm-reduce/deltas/Delta.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/llvm/tools/llvm-reduce/deltas/Delta.cpp b/llvm/tools/llvm-reduce/deltas/Delta.cpp
index d4106b0243aea..5ed187e4459dc 100644
--- a/llvm/tools/llvm-reduce/deltas/Delta.cpp
+++ b/llvm/tools/llvm-reduce/deltas/Delta.cpp
@@ -244,16 +244,20 @@ void llvm::runDeltaPass(TestRunner &Test, const DeltaPass &Pass) {
     ChunkThreadPoolPtr =
         std::make_unique<DefaultThreadPool>(hardware_concurrency(NumJobs));
 
+  SmallString<0> OriginalBC;
+  DenseSet<Chunk> UninterestingChunks;
+  UninterestingChunks.reserve(Targets);
+
   bool FoundAtLeastOneNewUninterestingChunkWithCurrentGranularity;
   do {
     FoundAtLeastOneNewUninterestingChunkWithCurrentGranularity = false;
 
-    DenseSet<Chunk> UninterestingChunks;
+    UninterestingChunks.clear();
 
     // When running with more than one thread, serialize the original bitcode
     // to OriginalBC.
-    SmallString<0> OriginalBC;
     if (NumJobs > 1) {
+      OriginalBC.clear();
       raw_svector_ostream BCOS(OriginalBC);
       Test.getProgram().writeBitcode(BCOS);
     }



More information about the llvm-commits mailing list