[llvm-commits] [llvm] r80486 - /llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
Chris Lattner
sabre at nondot.org
Sat Aug 29 23:20:05 PDT 2009
Author: lattner
Date: Sun Aug 30 01:20:05 2009
New Revision: 80486
URL: http://llvm.org/viewvc/llvm-project?rev=80486&view=rev
Log:
rename AddUsesToWorkList -> AddOperandsToWorkList. The
former looks too much like AddUsersToWorkList and keeps
confusing me.
Remove AddSoonDeadInstToWorklist and change its two callers
to do the same thing in a simpler way.
Modified:
llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=80486&r1=80485&r2=80486&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Sun Aug 30 01:20:05 2009
@@ -151,34 +151,15 @@
Worklist.Add(cast<Instruction>(*UI));
}
- /// AddUsesToWorkList - When an instruction is simplified, add operands to
- /// the work lists because they might get more simplified now.
+ /// AddOperandsToWorkList - When an instruction is simplified, add operands
+ /// to the work lists because they might get more simplified now.
///
- void AddUsesToWorkList(Instruction &I) {
+ void AddOperandsToWorkList(Instruction &I) {
for (User::op_iterator i = I.op_begin(), e = I.op_end(); i != e; ++i)
if (Instruction *Op = dyn_cast<Instruction>(*i))
Worklist.Add(Op);
}
- /// AddSoonDeadInstToWorklist - The specified instruction is about to become
- /// dead. Add all of its operands to the worklist, turning them into
- /// undef's to reduce the number of uses of those instructions.
- ///
- /// Return the specified operand before it is turned into an undef.
- ///
- Value *AddSoonDeadInstToWorklist(Instruction &I, unsigned op) {
- Value *R = I.getOperand(op);
-
- for (User::op_iterator i = I.op_begin(), e = I.op_end(); i != e; ++i)
- if (Instruction *Op = dyn_cast<Instruction>(*i)) {
- Worklist.Add(Op);
- // Set the operand to undef to drop the use.
- *i = UndefValue::get(Op->getType());
- }
-
- return R;
- }
-
public:
virtual bool runOnFunction(Function &F);
@@ -351,7 +332,7 @@
// Make sure that we reprocess all operands now that we reduced their
// use counts.
if (I.getNumOperands() < 8)
- AddUsesToWorkList(I);
+ AddOperandsToWorkList(I);
Worklist.Remove(&I);
I.eraseFromParent();
return 0; // Don't do anything with FI
@@ -1548,8 +1529,10 @@
// If this is inserting an element that isn't demanded, remove this
// insertelement.
unsigned IdxNo = Idx->getZExtValue();
- if (IdxNo >= VWidth || !DemandedElts[IdxNo])
- return AddSoonDeadInstToWorklist(*I, 0);
+ if (IdxNo >= VWidth || !DemandedElts[IdxNo]) {
+ Worklist.Add(I);
+ return I->getOperand(0);
+ }
// Otherwise, the element inserted overwrites whatever was there, so the
// input demanded set is simpler than the output set.
@@ -1771,7 +1754,6 @@
UndefValue::get(II->getType()), TmpV,
ConstantInt::get(Type::getInt32Ty(*Context), 0U, false), II->getName());
InsertNewInstBefore(New, *II);
- AddSoonDeadInstToWorklist(*II, 0);
return New;
}
}
@@ -3265,7 +3247,7 @@
(isa<ConstantInt>(RHSNeg) &&
cast<ConstantInt>(RHSNeg)->getValue().isStrictlyPositive())) {
// X % -Y -> X % Y
- AddUsesToWorkList(I);
+ AddOperandsToWorkList(I);
I.setOperand(1, RHSNeg);
return &I;
}
@@ -3303,7 +3285,7 @@
Constant *NewRHSV = ConstantVector::get(Elts);
if (NewRHSV != RHSV) {
- AddUsesToWorkList(I);
+ AddOperandsToWorkList(I);
I.setOperand(1, NewRHSV);
return &I;
}
@@ -6902,7 +6884,7 @@
LHSI->setOperand(1, NewAndCST);
LHSI->setOperand(0, Shift->getOperand(0));
Worklist.Add(Shift); // Shift is dead.
- AddUsesToWorkList(ICI);
+ AddOperandsToWorkList(ICI);
return &ICI;
}
}
@@ -7932,7 +7914,7 @@
// things that used it to use the new cast. This will also hack on CI, but it
// will die soon.
else if (!AI.hasOneUse()) {
- AddUsesToWorkList(AI);
+ AddOperandsToWorkList(AI);
// New is the allocation instruction, pointer typed. AI is the original
// allocation instruction, also pointer typed. Thus, cast to use is BitCast.
CastInst *NewCast = new BitCastInst(New, AI.getType(), "tmpcast");
@@ -12419,7 +12401,7 @@
// be the same value, extract from the pre-inserted value instead.
if (isa<Constant>(IE->getOperand(2)) &&
isa<Constant>(EI.getOperand(1))) {
- AddUsesToWorkList(EI);
+ AddOperandsToWorkList(EI);
EI.setOperand(0, IE->getOperand(0));
return &EI;
}
More information about the llvm-commits
mailing list