diff options
author | Owen Anderson <resistor@mac.com> | 2007-07-26 18:57:04 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-07-26 18:57:04 +0000 |
commit | cdb7583524618c972acf61d50af388fe788d9921 (patch) | |
tree | 8e15f372af2a94836e54f561395b181a1f036440 /lib/Analysis | |
parent | acfa3ad91f8dd5ffe41e60819560a04c5683fcfc (diff) | |
download | external_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.cpp | 8 |
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; } |