mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 14:40:25 +00:00
Iterating over a DenseMap<std::pair<BasicBlock*, unsigned>, PHINode*> is not
deterministic, replace it with a DenseMap<std::pair<unsigned, unsigned>, PHINode*> (we already have a map from BasicBlock to unsigned). <rdar://problem/12541389> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166435 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
65c88929e7
commit
6a02bbcdae
@ -214,7 +214,7 @@ namespace {
|
||||
|
||||
/// NewPhiNodes - The PhiNodes we're adding.
|
||||
///
|
||||
DenseMap<std::pair<BasicBlock*, unsigned>, PHINode*> NewPhiNodes;
|
||||
DenseMap<std::pair<unsigned, unsigned>, PHINode*> NewPhiNodes;
|
||||
|
||||
/// PhiToAllocaMap - For each PHI node, keep track of which entry in Allocas
|
||||
/// it corresponds to.
|
||||
@ -588,7 +588,7 @@ void PromoteMem2Reg::run() {
|
||||
while (EliminatedAPHI) {
|
||||
EliminatedAPHI = false;
|
||||
|
||||
for (DenseMap<std::pair<BasicBlock*, unsigned>, PHINode*>::iterator I =
|
||||
for (DenseMap<std::pair<unsigned, unsigned>, PHINode*>::iterator I =
|
||||
NewPhiNodes.begin(), E = NewPhiNodes.end(); I != E;) {
|
||||
PHINode *PN = I->second;
|
||||
|
||||
@ -612,7 +612,7 @@ void PromoteMem2Reg::run() {
|
||||
// have incoming values for all predecessors. Loop over all PHI nodes we have
|
||||
// created, inserting undef values if they are missing any incoming values.
|
||||
//
|
||||
for (DenseMap<std::pair<BasicBlock*, unsigned>, PHINode*>::iterator I =
|
||||
for (DenseMap<std::pair<unsigned, unsigned>, PHINode*>::iterator I =
|
||||
NewPhiNodes.begin(), E = NewPhiNodes.end(); I != E; ++I) {
|
||||
// We want to do this once per basic block. As such, only process a block
|
||||
// when we find the PHI that is the first entry in the block.
|
||||
@ -992,7 +992,7 @@ void PromoteMem2Reg::PromoteSingleBlockAlloca(AllocaInst *AI, AllocaInfo &Info,
|
||||
bool PromoteMem2Reg::QueuePhiNode(BasicBlock *BB, unsigned AllocaNo,
|
||||
unsigned &Version) {
|
||||
// Look up the basic-block in question.
|
||||
PHINode *&PN = NewPhiNodes[std::make_pair(BB, AllocaNo)];
|
||||
PHINode *&PN = NewPhiNodes[std::make_pair(BBNumbers[BB], AllocaNo)];
|
||||
|
||||
// If the BB already has a phi node added for the i'th alloca then we're done!
|
||||
if (PN) return false;
|
||||
|
Loading…
Reference in New Issue
Block a user