From: Devang Patel Date: Mon, 26 Mar 2007 23:18:28 +0000 (+0000) Subject: It is not possible to determie dominance between two PHI nodes X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=b9dbc4deccefc062a29bce49dc60bf9d5627e603;p=oota-llvm.git 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 --- diff --git a/lib/VMCore/Dominators.cpp b/lib/VMCore/Dominators.cpp index a0e818fc313..7019c98d89e 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 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(A) && isa(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*/;