mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
simplify code by using Value::takeName
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34177 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6934a04a8c
commit
86cc423555
@ -29,14 +29,12 @@ void llvm::ReplaceInstWithValue(BasicBlock::InstListType &BIL,
|
||||
// Replaces all of the uses of the instruction with uses of the value
|
||||
I.replaceAllUsesWith(V);
|
||||
|
||||
std::string OldName = I.getName();
|
||||
// Make sure to propagate a name if there is one already.
|
||||
if (I.hasName() && !V->hasName())
|
||||
V->takeName(&I);
|
||||
|
||||
// Delete the unnecessary instruction now...
|
||||
BI = BIL.erase(BI);
|
||||
|
||||
// Make sure to propagate a name if there is one already.
|
||||
if (!OldName.empty() && !V->hasName())
|
||||
V->setName(OldName);
|
||||
}
|
||||
|
||||
|
||||
|
@ -201,10 +201,10 @@ bool LowerInvoke::insertCheapEHSupport(Function &F) {
|
||||
for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB)
|
||||
if (InvokeInst *II = dyn_cast<InvokeInst>(BB->getTerminator())) {
|
||||
// Insert a normal call instruction...
|
||||
std::string Name = II->getName(); II->setName("");
|
||||
CallInst *NewCall = new CallInst(II->getCalledValue(),
|
||||
std::vector<Value*>(II->op_begin()+3,
|
||||
II->op_end()), Name, II);
|
||||
II->op_end()), "", II);
|
||||
NewCall->takeName(II);
|
||||
NewCall->setCallingConv(II->getCallingConv());
|
||||
II->replaceAllUsesWith(NewCall);
|
||||
|
||||
@ -258,11 +258,11 @@ void LowerInvoke::rewriteExpensiveInvoke(InvokeInst *II, unsigned InvokeNo,
|
||||
CatchSwitch->addCase(InvokeNoC, II->getUnwindDest());
|
||||
|
||||
// Insert a normal call instruction.
|
||||
std::string Name = II->getName(); II->setName("");
|
||||
CallInst *NewCall = new CallInst(II->getCalledValue(),
|
||||
std::vector<Value*>(II->op_begin()+3,
|
||||
II->op_end()), Name,
|
||||
II->op_end()), "",
|
||||
II);
|
||||
NewCall->takeName(II);
|
||||
NewCall->setCallingConv(II->getCallingConv());
|
||||
II->replaceAllUsesWith(NewCall);
|
||||
|
||||
|
@ -85,8 +85,8 @@ bool LowerSelect::runOnFunction(Function &F) {
|
||||
new BranchInst(NewTrue, NewCont, SI->getCondition(), BB);
|
||||
|
||||
// Create a new PHI node in the cont block with the entries we need.
|
||||
std::string Name = SI->getName(); SI->setName("");
|
||||
PHINode *PN = new PHINode(SI->getType(), Name, NewCont->begin());
|
||||
PHINode *PN = new PHINode(SI->getType(), "", NewCont->begin());
|
||||
PN->takeName(SI);
|
||||
PN->addIncoming(SI->getTrueValue(), NewTrue);
|
||||
PN->addIncoming(SI->getFalseValue(), BB);
|
||||
|
||||
|
@ -213,12 +213,9 @@ static bool TryToSimplifyUncondBranchFromEmptyBlock(BasicBlock *BB,
|
||||
}
|
||||
|
||||
// Everything that jumped to BB now goes to Succ.
|
||||
std::string OldName = BB->getName();
|
||||
BB->replaceAllUsesWith(Succ);
|
||||
if (!Succ->hasName()) Succ->takeName(BB);
|
||||
BB->eraseFromParent(); // Delete the old basic block.
|
||||
|
||||
if (!OldName.empty() && !Succ->hasName()) // Transfer name if we can
|
||||
Succ->setName(OldName);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -881,7 +878,7 @@ HoistTerminator:
|
||||
if (NT->getType() != Type::VoidTy) {
|
||||
I1->replaceAllUsesWith(NT);
|
||||
I2->replaceAllUsesWith(NT);
|
||||
NT->setName(I1->getName());
|
||||
NT->takeName(I1);
|
||||
}
|
||||
|
||||
// Hoisting one of the terminators from our successor is a great thing.
|
||||
@ -1154,9 +1151,10 @@ static bool FoldTwoEntryPHINode(PHINode *PN) {
|
||||
Value *FalseVal =
|
||||
PN->getIncomingValue(PN->getIncomingBlock(0) == IfTrue);
|
||||
|
||||
std::string Name = PN->getName(); PN->setName("");
|
||||
PN->replaceAllUsesWith(new SelectInst(IfCond, TrueVal, FalseVal,
|
||||
Name, AfterPHIIt));
|
||||
Value *NV = new SelectInst(IfCond, TrueVal, FalseVal, "", AfterPHIIt);
|
||||
PN->replaceAllUsesWith(NV);
|
||||
NV->takeName(PN);
|
||||
|
||||
BB->getInstList().erase(PN);
|
||||
}
|
||||
return true;
|
||||
@ -1474,9 +1472,9 @@ bool llvm::SimplifyCFG(BasicBlock *BB) {
|
||||
// Clone Cond into the predecessor basic block, and or/and the
|
||||
// two conditions together.
|
||||
Instruction *New = Cond->clone();
|
||||
New->setName(Cond->getName());
|
||||
Cond->setName(Cond->getName()+".old");
|
||||
PredBlock->getInstList().insert(PBI, New);
|
||||
New->takeName(Cond);
|
||||
Cond->setName(New->getName()+".old");
|
||||
Instruction::BinaryOps Opcode =
|
||||
PBI->getSuccessor(0) == TrueDest ?
|
||||
Instruction::Or : Instruction::And;
|
||||
@ -1800,28 +1798,26 @@ bool llvm::SimplifyCFG(BasicBlock *BB) {
|
||||
//
|
||||
while (PHINode *PN = dyn_cast<PHINode>(&BB->front())) {
|
||||
PN->replaceAllUsesWith(PN->getIncomingValue(0));
|
||||
BB->getInstList().pop_front(); // Delete the phi node...
|
||||
BB->getInstList().pop_front(); // Delete the phi node.
|
||||
}
|
||||
|
||||
// Delete the unconditional branch from the predecessor...
|
||||
// Delete the unconditional branch from the predecessor.
|
||||
OnlyPred->getInstList().pop_back();
|
||||
|
||||
// Move all definitions in the successor to the predecessor...
|
||||
// Move all definitions in the successor to the predecessor.
|
||||
OnlyPred->getInstList().splice(OnlyPred->end(), BB->getInstList());
|
||||
|
||||
// Make all PHI nodes that referred to BB now refer to Pred as their
|
||||
// source...
|
||||
// source.
|
||||
BB->replaceAllUsesWith(OnlyPred);
|
||||
|
||||
std::string OldName = BB->getName();
|
||||
|
||||
// Erase basic block from the function...
|
||||
// Inherit predecessors name if it exists.
|
||||
if (!OnlyPred->hasName())
|
||||
OnlyPred->takeName(BB);
|
||||
|
||||
// Erase basic block from the function.
|
||||
M->getBasicBlockList().erase(BB);
|
||||
|
||||
// Inherit predecessors name if it exists...
|
||||
if (!OldName.empty() && !OnlyPred->hasName())
|
||||
OnlyPred->setName(OldName);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user