mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-14 07:31:47 +00:00
Adjust to changes in instruction interfaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19900 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
667fdaef9f
commit
5551706b0f
@ -156,13 +156,12 @@ void DSE::DeleteDeadInstructionChains(Instruction *I,
|
||||
// See if this made any operands dead. We do it this way in case the
|
||||
// instruction uses the same operand twice. We don't want to delete a
|
||||
// value then reference it.
|
||||
while (unsigned NumOps = I->getNumOperands()) {
|
||||
Instruction *Op = dyn_cast<Instruction>(I->getOperand(NumOps-1));
|
||||
I->op_erase(I->op_end()-1); // Drop from the operand list.
|
||||
|
||||
if (Op) DeadInsts.insert(Op); // Attempt to nuke it later.
|
||||
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i) {
|
||||
if (Instruction *Op = dyn_cast<Instruction>(I->getOperand(i)))
|
||||
DeadInsts.insert(Op); // Attempt to nuke it later.
|
||||
I->setOperand(i, 0); // Drop from the operand list.
|
||||
}
|
||||
|
||||
I->getParent()->getInstList().erase(I);
|
||||
I->eraseFromParent();
|
||||
++NumOther;
|
||||
}
|
||||
|
@ -575,7 +575,7 @@ Instruction *InstCombiner::FoldOpIntoPhi(Instruction &I) {
|
||||
// Okay, we can do the transformation: create the new PHI node.
|
||||
PHINode *NewPN = new PHINode(I.getType(), I.getName());
|
||||
I.setName("");
|
||||
NewPN->op_reserve(PN->getNumOperands());
|
||||
NewPN->reserveOperandSpace(PN->getNumOperands()/2);
|
||||
InsertNewInstBefore(NewPN, *PN);
|
||||
|
||||
// Next, add all of the operands to the PHI.
|
||||
@ -4142,7 +4142,7 @@ Instruction *InstCombiner::FoldPHIArgOpIntoPHI(PHINode &PN) {
|
||||
// correct type, and PHI together all of the LHS's of the instructions.
|
||||
PHINode *NewPN = new PHINode(FirstInst->getOperand(0)->getType(),
|
||||
PN.getName()+".in");
|
||||
NewPN->op_reserve(PN.getNumOperands());
|
||||
NewPN->reserveOperandSpace(PN.getNumOperands()/2);
|
||||
|
||||
Value *InVal = FirstInst->getOperand(0);
|
||||
NewPN->addIncoming(InVal, PN.getIncomingBlock(0));
|
||||
|
@ -575,7 +575,7 @@ void LoopSimplify::InsertUniqueBackedgeBlock(Loop *L) {
|
||||
PHINode *PN = cast<PHINode>(I);
|
||||
PHINode *NewPN = new PHINode(PN->getType(), PN->getName()+".be",
|
||||
BETerminator);
|
||||
NewPN->op_reserve(2*BackedgeBlocks.size());
|
||||
NewPN->reserveOperandSpace(BackedgeBlocks.size());
|
||||
|
||||
// Loop over the PHI node, moving all entries except the one for the
|
||||
// preheader over to the new PHI node.
|
||||
@ -604,7 +604,9 @@ void LoopSimplify::InsertUniqueBackedgeBlock(Loop *L) {
|
||||
PN->setIncomingValue(0, PN->getIncomingValue(PreheaderIdx));
|
||||
PN->setIncomingBlock(0, PN->getIncomingBlock(PreheaderIdx));
|
||||
}
|
||||
PN->op_erase(PN->op_begin()+2, PN->op_end());
|
||||
// Nuke all entries except the zero'th.
|
||||
for (unsigned i = 0, e = PN->getNumIncomingValues()-1; i != e; ++i)
|
||||
PN->removeIncomingValue(e-i, false);
|
||||
|
||||
// Finally, add the newly constructed PHI node as the entry for the BEBlock.
|
||||
PN->addIncoming(NewPN, BEBlock);
|
||||
|
Loading…
Reference in New Issue
Block a user