mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-19 16:35:10 +00:00
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
This commit is contained in:
parent
9be98dd9c0
commit
b9dbc4decc
@ -19,6 +19,7 @@
|
|||||||
#include "llvm/Assembly/Writer.h"
|
#include "llvm/Assembly/Writer.h"
|
||||||
#include "llvm/ADT/DepthFirstIterator.h"
|
#include "llvm/ADT/DepthFirstIterator.h"
|
||||||
#include "llvm/ADT/SetOperations.h"
|
#include "llvm/ADT/SetOperations.h"
|
||||||
|
#include "llvm/Instructions.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
@ -265,6 +266,11 @@ bool DominatorSetBase::dominates(Instruction *A, Instruction *B) const {
|
|||||||
BasicBlock *BBA = A->getParent(), *BBB = B->getParent();
|
BasicBlock *BBA = A->getParent(), *BBB = B->getParent();
|
||||||
if (BBA != BBB) return dominates(BBA, BBB);
|
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.
|
// Loop through the basic block until we find A or B.
|
||||||
BasicBlock::iterator I = BBA->begin();
|
BasicBlock::iterator I = BBA->begin();
|
||||||
for (; &*I != A && &*I != B; ++I) /*empty*/;
|
for (; &*I != A && &*I != B; ++I) /*empty*/;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user