summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/LevelRaise.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-09-10 17:04:02 +0000
committerChris Lattner <sabre@nondot.org>2002-09-10 17:04:02 +0000
commit28a8d2468a255ef6c82bf4838cc5aed3e58fcc5b (patch)
tree89f3d97f3cfe5f1973ed0f8b80fcdae743bc1c76 /llvm/lib/Transforms/LevelRaise.cpp
parent5c447863d556b104fa0e3112177fa4d71afbbaa9 (diff)
downloadbcm5719-llvm-28a8d2468a255ef6c82bf4838cc5aed3e58fcc5b.tar.gz
bcm5719-llvm-28a8d2468a255ef6c82bf4838cc5aed3e58fcc5b.zip
Simplify code (somtimes dramatically), by using the new "auto-insert" feature
of instruction constructors. llvm-svn: 3656
Diffstat (limited to 'llvm/lib/Transforms/LevelRaise.cpp')
-rw-r--r--llvm/lib/Transforms/LevelRaise.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/llvm/lib/Transforms/LevelRaise.cpp b/llvm/lib/Transforms/LevelRaise.cpp
index 8a08e9d2cf3..92f2f79381c 100644
--- a/llvm/lib/Transforms/LevelRaise.cpp
+++ b/llvm/lib/Transforms/LevelRaise.cpp
@@ -179,8 +179,7 @@ static bool PeepholeOptimizeAddCast(BasicBlock *BB, BasicBlock::iterator &BI,
}
GetElementPtrInst *GEP = new GetElementPtrInst(SrcPtr, Indices,
- AddOp2->getName());
- BI = ++BB->getInstList().insert(BI, GEP);
+ AddOp2->getName(), BI);
Instruction *NCI = new CastInst(GEP, AddOp1->getType());
ReplaceInstWithInst(BB->getInstList(), BI, NCI);
@@ -354,11 +353,11 @@ static bool PeepholeOptimize(BasicBlock *BB, BasicBlock::iterator &BI) {
if (ElTy) {
PRINT_PEEPHOLE1("cast-for-first:in", CI);
+ std::string Name = CI->getName(); CI->setName("");
+
// Insert the new T cast instruction... stealing old T's name
GetElementPtrInst *GEP = new GetElementPtrInst(Src, Indices,
- CI->getName());
- CI->setName("");
- BI = ++BB->getInstList().insert(BI, GEP);
+ Name, BI);
// Make the old cast instruction reference the new GEP instead of
// the old src value.
@@ -397,10 +396,9 @@ static bool PeepholeOptimize(BasicBlock *BB, BasicBlock::iterator &BI) {
PRINT_PEEPHOLE3("st-src-cast:in ", Pointer, Val, SI);
// Insert the new T cast instruction... stealing old T's name
+ std::string Name(CI->getName()); CI->setName("");
CastInst *NCI = new CastInst(Val, CSPT->getElementType(),
- CI->getName());
- CI->setName("");
- BI = ++BB->getInstList().insert(BI, NCI);
+ Name, BI);
// Replace the old store with a new one!
ReplaceInstWithInst(BB->getInstList(), BI,
@@ -436,11 +434,10 @@ static bool PeepholeOptimize(BasicBlock *BB, BasicBlock::iterator &BI) {
PRINT_PEEPHOLE2("load-src-cast:in ", Pointer, LI);
// Create the new load instruction... loading the pre-casted value
- LoadInst *NewLI = new LoadInst(CastSrc, LI->getName());
+ LoadInst *NewLI = new LoadInst(CastSrc, LI->getName(), BI);
// Insert the new T cast instruction... stealing old T's name
CastInst *NCI = new CastInst(NewLI, LI->getType(), CI->getName());
- BI = ++BB->getInstList().insert(BI, NewLI);
// Replace the old store with a new one!
ReplaceInstWithInst(BB->getInstList(), BI, NCI);
OpenPOWER on IntegriCloud