[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