aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2007-07-26 18:57:04 +0000
committerOwen Anderson <resistor@mac.com>2007-07-26 18:57:04 +0000
commitcdb7583524618c972acf61d50af388fe788d9921 (patch)
tree8e15f372af2a94836e54f561395b181a1f036440 /lib/Analysis
parentacfa3ad91f8dd5ffe41e60819560a04c5683fcfc (diff)
downloadexternal_llvm-cdb7583524618c972acf61d50af388fe788d9921.zip
external_llvm-cdb7583524618c972acf61d50af388fe788d9921.tar.gz
external_llvm-cdb7583524618c972acf61d50af388fe788d9921.tar.bz2
Fix a bug introduced in my last commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40542 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis')
-rw-r--r--lib/Analysis/MemoryDependenceAnalysis.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Analysis/MemoryDependenceAnalysis.cpp b/lib/Analysis/MemoryDependenceAnalysis.cpp
index 064a087..4bd8771 100644
--- a/lib/Analysis/MemoryDependenceAnalysis.cpp
+++ b/lib/Analysis/MemoryDependenceAnalysis.cpp
@@ -117,12 +117,18 @@ bool MemoryDependenceAnalysis::nonLocalHelper(Instruction* query,
visited.insert(block);
bool inserted = false;
+ bool predOnStack = false;
for (pred_iterator PI = pred_begin(block), PE = pred_end(block);
PI != PE; ++PI)
if (!visited.count(*PI))
inserted |= nonLocalHelper(query, *PI, resp, visited);
-
+ else
+ predOnStack = true;
+
visited.erase(block);
+
+ if (!inserted && !predOnStack)
+ resp.insert(std::make_pair(block, None));
return inserted;
}