diff options
author | Chris Lattner <sabre@nondot.org> | 2007-02-11 01:37:51 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-02-11 01:37:51 +0000 |
commit | 86cc42355593dd1689f7d58d56695c451215b02b (patch) | |
tree | bc83bae05962525946b96dbb4fd11f3957cedf11 /lib/Transforms | |
parent | 6934a04a8c15e9971cd1ea4d5c8df2d7afdd5be5 (diff) | |
download | external_llvm-86cc42355593dd1689f7d58d56695c451215b02b.zip external_llvm-86cc42355593dd1689f7d58d56695c451215b02b.tar.gz external_llvm-86cc42355593dd1689f7d58d56695c451215b02b.tar.bz2 |
simplify code by using Value::takeName
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34177 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms')
-rw-r--r-- | lib/Transforms/Utils/BasicBlockUtils.cpp | 8 | ||||
-rw-r--r-- | lib/Transforms/Utils/LowerInvoke.cpp | 8 | ||||
-rw-r--r-- | lib/Transforms/Utils/LowerSelect.cpp | 4 | ||||
-rw-r--r-- | lib/Transforms/Utils/SimplifyCFG.cpp | 38 |
4 files changed, 26 insertions, 32 deletions
diff --git a/lib/Transforms/Utils/BasicBlockUtils.cpp b/lib/Transforms/Utils/BasicBlockUtils.cpp index 769d1b2..f9bcd39 100644 --- a/lib/Transforms/Utils/BasicBlockUtils.cpp +++ b/lib/Transforms/Utils/BasicBlockUtils.cpp @@ -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); } diff --git a/lib/Transforms/Utils/LowerInvoke.cpp b/lib/Transforms/Utils/LowerInvoke.cpp index 62eec75..0da30e2 100644 --- a/lib/Transforms/Utils/LowerInvoke.cpp +++ b/lib/Transforms/Utils/LowerInvoke.cpp @@ -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); diff --git a/lib/Transforms/Utils/LowerSelect.cpp b/lib/Transforms/Utils/LowerSelect.cpp index 5f9f593..27e1866 100644 --- a/lib/Transforms/Utils/LowerSelect.cpp +++ b/lib/Transforms/Utils/LowerSelect.cpp @@ -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); diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index c94c41b..b3a9f1d 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/lib/Transforms/Utils/SimplifyCFG.cpp @@ -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; } |