aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis/MemoryDependenceAnalysis.cpp
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
commita377a24771eed5c4672556afb2c28e80af026d7b (patch)
tree8e15f372af2a94836e54f561395b181a1f036440 /lib/Analysis/MemoryDependenceAnalysis.cpp
parent45537917eec15e5c3ef75c0ee2bf8963b02f3a54 (diff)
downloadexternal_llvm-a377a24771eed5c4672556afb2c28e80af026d7b.zip
external_llvm-a377a24771eed5c4672556afb2c28e80af026d7b.tar.gz
external_llvm-a377a24771eed5c4672556afb2c28e80af026d7b.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/MemoryDependenceAnalysis.cpp')
-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;
}