summaryrefslogtreecommitdiff
path: root/lib/VMCore/Dominators.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2007-03-28 14:57:43 +0000
committerDevang Patel <dpatel@apple.com>2007-03-28 14:57:43 +0000
commit9dea3a340a8e3db7eab92ea78c20e317ac4c2545 (patch)
tree988d781f4d25793ea7be0a0da19045e3099fa10c /lib/VMCore/Dominators.cpp
parente82fca09bffc73310499bdcfbdea87a095420e09 (diff)
downloadllvm-9dea3a340a8e3db7eab92ea78c20e317ac4c2545.tar.gz
llvm-9dea3a340a8e3db7eab92ea78c20e317ac4c2545.tar.bz2
llvm-9dea3a340a8e3db7eab92ea78c20e317ac4c2545.tar.xz
It is not possible to determine dominance between two PHI nodes
based on their ordering. This is applicable to ETForest::dominates() also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35423 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Dominators.cpp')
-rw-r--r--lib/VMCore/Dominators.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/VMCore/Dominators.cpp b/lib/VMCore/Dominators.cpp
index 1421cf14e7..9bd51bf4d9 100644
--- a/lib/VMCore/Dominators.cpp
+++ b/lib/VMCore/Dominators.cpp
@@ -952,6 +952,11 @@ bool ETForestBase::dominates(Instruction *A, Instruction *B) {
BasicBlock::iterator I = BBA->begin();
for (; &*I != A && &*I != B; ++I) /*empty*/;
+ // It is not possible to determine dominance between two PHI nodes
+ // based on their ordering.
+ if (isa<PHINode>(A) && isa<PHINode>(B))
+ return false;
+
if(!IsPostDominators) {
// A dominates B if it is found first in the basic block.
return &*I == A;