aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis/MemoryDependenceAnalysis.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2008-06-01 21:03:52 +0000
committerOwen Anderson <resistor@mac.com>2008-06-01 21:03:52 +0000
commit6bd15ce03f27047909da227f923e36249bf8182b (patch)
treefc04944d4baa7bdafc7f774c581a40d25ff43f59 /lib/Analysis/MemoryDependenceAnalysis.cpp
parentd8f34fa3d616a99e90ac9111fdc60b7b4ec0aae9 (diff)
downloadexternal_llvm-6bd15ce03f27047909da227f923e36249bf8182b.zip
external_llvm-6bd15ce03f27047909da227f923e36249bf8182b.tar.gz
external_llvm-6bd15ce03f27047909da227f923e36249bf8182b.tar.bz2
Remember to update the reverse non-local cache when cleaning up dirty entries. This fixes PR2397.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51846 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/MemoryDependenceAnalysis.cpp')
-rw-r--r--lib/Analysis/MemoryDependenceAnalysis.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Analysis/MemoryDependenceAnalysis.cpp b/lib/Analysis/MemoryDependenceAnalysis.cpp
index 6489892..2012ab4 100644
--- a/lib/Analysis/MemoryDependenceAnalysis.cpp
+++ b/lib/Analysis/MemoryDependenceAnalysis.cpp
@@ -282,6 +282,11 @@ void MemoryDependenceAnalysis::getNonLocalDependency(Instruction* query,
resp = cached;
+ // Update the reverse non-local dependency cache
+ for (DenseMap<BasicBlock*, Value*>::iterator I = resp.begin(), E = resp.end();
+ I != E; ++I)
+ reverseDepNonLocal[I->second].insert(query);
+
return;
} else
NumUncacheNonlocal++;