summaryrefslogtreecommitdiff
path: root/lib/VMCore/Dominators.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2007-03-26 23:18:28 +0000
committerDevang Patel <dpatel@apple.com>2007-03-26 23:18:28 +0000
commitb9dbc4deccefc062a29bce49dc60bf9d5627e603 (patch)
tree8d632f488e25c0879f3024c7cd52be89a218965b /lib/VMCore/Dominators.cpp
parent9be98dd9c01e41c126fa3da0d794bdbeb5665c11 (diff)
downloadllvm-b9dbc4deccefc062a29bce49dc60bf9d5627e603.tar.gz
llvm-b9dbc4deccefc062a29bce49dc60bf9d5627e603.tar.bz2
llvm-b9dbc4deccefc062a29bce49dc60bf9d5627e603.tar.xz
It is not possible to determie dominance between two PHI nodes
based on their ordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35369 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Dominators.cpp')
-rw-r--r--lib/VMCore/Dominators.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/VMCore/Dominators.cpp b/lib/VMCore/Dominators.cpp
index a0e818fc31..7019c98d89 100644
--- a/lib/VMCore/Dominators.cpp
+++ b/lib/VMCore/Dominators.cpp
@@ -19,6 +19,7 @@
#include "llvm/Assembly/Writer.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SetOperations.h"
+#include "llvm/Instructions.h"
#include <algorithm>
using namespace llvm;
@@ -265,6 +266,11 @@ bool DominatorSetBase::dominates(Instruction *A, Instruction *B) const {
BasicBlock *BBA = A->getParent(), *BBB = B->getParent();
if (BBA != BBB) return dominates(BBA, BBB);
+ // It is not possible to determie dominance between two PHI nodes
+ // based on their ordering.
+ if (isa<PHINode>(A) && isa<PHINode>(B))
+ return false;
+
// Loop through the basic block until we find A or B.
BasicBlock::iterator I = BBA->begin();
for (; &*I != A && &*I != B; ++I) /*empty*/;