[llvm] [GVN/MemDep] Limit the size of the cache for non-local dependencies. (PR #150539)
Alina Sbirlea via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 23 09:20:21 PDT 2025
https://github.com/alinas updated https://github.com/llvm/llvm-project/pull/150539
>From cadaf891646c9f833722f911af0fd76f77264472 Mon Sep 17 00:00:00 2001
From: Alina Sbirlea <asbirlea at google.com>
Date: Thu, 24 Jul 2025 22:09:04 +0000
Subject: [PATCH] [GVN/MemDep] Limit the size of the cache for non-local
dependencies.
---
llvm/lib/Analysis/MemoryDependenceAnalysis.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
index 67c2cfadb6533..5c03df2518ceb 100644
--- a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
+++ b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
@@ -80,6 +80,10 @@ static cl::opt<unsigned>
cl::desc("The number of blocks to scan during memory "
"dependency analysis (default = 200)"));
+static cl::opt<unsigned> CacheGlobalLimit(
+ "cache-global-limit", cl::Hidden, cl::init(10000),
+ cl::desc("The max number of entries allowed in a cache (default = 10000)"));
+
// Limit on the number of memdep results to process.
static const unsigned int NumResultsLimit = 100;
@@ -1142,6 +1146,11 @@ bool MemoryDependenceResults::getNonLocalPointerDepFromBB(
return true;
}
+ // If the size of this cache has surpassed the global limit, stop here.
+ if (Cache->size() > CacheGlobalLimit) {
+ return false;
+ }
+
// Otherwise, either this is a new block, a block with an invalid cache
// pointer or one that we're about to invalidate by putting more info into
// it than its valid cache info. If empty and not explicitly indicated as
More information about the llvm-commits
mailing list