mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-20 10:24:12 +00:00
(Almost) always call reserveOperandSpace() on newly created PHINodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128535 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -928,13 +928,14 @@ bool JumpThreading::SimplifyPartiallyRedundantLoad(LoadInst *LI) {
|
||||
array_pod_sort(AvailablePreds.begin(), AvailablePreds.end());
|
||||
|
||||
// Create a PHI node at the start of the block for the PRE'd load value.
|
||||
pred_iterator PB = pred_begin(LoadBB), PE = pred_end(LoadBB);
|
||||
PHINode *PN = PHINode::Create(LI->getType(), "", LoadBB->begin());
|
||||
PN->reserveOperandSpace(std::distance(PB, PE));
|
||||
PN->takeName(LI);
|
||||
|
||||
// Insert new entries into the PHI for each predecessor. A single block may
|
||||
// have multiple entries here.
|
||||
for (pred_iterator PI = pred_begin(LoadBB), E = pred_end(LoadBB); PI != E;
|
||||
++PI) {
|
||||
for (pred_iterator PI = PB; PI != PE; ++PI) {
|
||||
BasicBlock *P = *PI;
|
||||
AvailablePredsTy::iterator I =
|
||||
std::lower_bound(AvailablePreds.begin(), AvailablePreds.end(),
|
||||
|
Reference in New Issue
Block a user