[llvm-commits] [llvm] r77044 - in /llvm/trunk: include/llvm/Instructions.h include/llvm/Support/IRBuilder.h lib/AsmParser/LLParser.cpp lib/Bitcode/Reader/BitcodeReader.cpp lib/Transforms/Scalar/GVNPRE.cpp lib/Transforms/Scalar/InstructionCombining.cpp lib/VMCore/Instructions.cpp
Eric Christopher
echristo at apple.com
Fri Jul 24 19:28:41 PDT 2009
Author: echristo
Date: Fri Jul 24 21:28:41 2009
New Revision: 77044
URL: http://llvm.org/viewvc/llvm-project?rev=77044&view=rev
Log:
Move ExtractElementInst to ::Create instead of new. Update all uses.
Modified:
llvm/trunk/include/llvm/Instructions.h
llvm/trunk/include/llvm/Support/IRBuilder.h
llvm/trunk/lib/AsmParser/LLParser.cpp
llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/trunk/lib/Transforms/Scalar/GVNPRE.cpp
llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
llvm/trunk/lib/VMCore/Instructions.cpp
Modified: llvm/trunk/include/llvm/Instructions.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Instructions.h?rev=77044&r1=77043&r2=77044&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Instructions.h (original)
+++ llvm/trunk/include/llvm/Instructions.h Fri Jul 24 21:28:41 2009
@@ -1270,15 +1270,25 @@
Op<1>() = EE.Op<1>();
}
-public:
- // allocate space for exactly two operands
- void *operator new(size_t s) {
- return User::operator new(s, 2); // FIXME: "unsigned Idx" forms of ctor?
- }
ExtractElementInst(Value *Vec, Value *Idx, const std::string &NameStr = "",
Instruction *InsertBefore = 0);
ExtractElementInst(Value *Vec, Value *Idx, const std::string &NameStr,
BasicBlock *InsertAtEnd);
+public:
+ static ExtractElementInst *Create(const ExtractElementInst &EE) {
+ return new(EE.getNumOperands()) ExtractElementInst(EE);
+ }
+
+ static ExtractElementInst *Create(Value *Vec, Value *Idx,
+ const std::string &NameStr = "",
+ Instruction *InsertBefore = 0) {
+ return new(2) ExtractElementInst(Vec, Idx, NameStr, InsertBefore);
+ }
+ static ExtractElementInst *Create(Value *Vec, Value *Idx,
+ const std::string &NameStr,
+ BasicBlock *InsertAtEnd) {
+ return new(2) ExtractElementInst(Vec, Idx, NameStr, InsertAtEnd);
+ }
/// isValidOperands - Return true if an extractelement instruction can be
/// formed with the specified operands.
Modified: llvm/trunk/include/llvm/Support/IRBuilder.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/IRBuilder.h?rev=77044&r1=77043&r2=77044&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/IRBuilder.h (original)
+++ llvm/trunk/include/llvm/Support/IRBuilder.h Fri Jul 24 21:28:41 2009
@@ -641,7 +641,7 @@
if (Constant *VC = dyn_cast<Constant>(Vec))
if (Constant *IC = dyn_cast<Constant>(Idx))
return Folder.CreateExtractElement(VC, IC);
- return Insert(new ExtractElementInst(Vec, Idx), Name);
+ return Insert(ExtractElementInst::Create(Vec, Idx), Name);
}
Value *CreateInsertElement(Value *Vec, Value *NewElt, Value *Idx,
Modified: llvm/trunk/lib/AsmParser/LLParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/LLParser.cpp?rev=77044&r1=77043&r2=77044&view=diff
==============================================================================
--- llvm/trunk/lib/AsmParser/LLParser.cpp (original)
+++ llvm/trunk/lib/AsmParser/LLParser.cpp Fri Jul 24 21:28:41 2009
@@ -3103,7 +3103,7 @@
if (!ExtractElementInst::isValidOperands(Op0, Op1))
return Error(Loc, "invalid extractelement operands");
- Inst = new ExtractElementInst(Op0, Op1);
+ Inst = ExtractElementInst::Create(Op0, Op1);
return false;
}
Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=77044&r1=77043&r2=77044&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Fri Jul 24 21:28:41 2009
@@ -1666,7 +1666,7 @@
if (getValueTypePair(Record, OpNum, NextValueNo, Vec) ||
getValue(Record, OpNum, Type::Int32Ty, Idx))
return Error("Invalid EXTRACTELT record");
- I = new ExtractElementInst(Vec, Idx);
+ I = ExtractElementInst::Create(Vec, Idx);
break;
}
Modified: llvm/trunk/lib/Transforms/Scalar/GVNPRE.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GVNPRE.cpp?rev=77044&r1=77043&r2=77044&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/GVNPRE.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/GVNPRE.cpp Fri Jul 24 21:28:41 2009
@@ -869,7 +869,7 @@
newOp1, newOp2,
C->getName()+".expr");
else if (ExtractElementInst* E = dyn_cast<ExtractElementInst>(U))
- newVal = new ExtractElementInst(newOp1, newOp2, E->getName()+".expr");
+ newVal = ExtractElementInst::Create(newOp1, newOp2, E->getName()+".expr");
uint32_t v = VN.lookup_or_add(newVal);
@@ -1694,7 +1694,7 @@
newVal = InsertElementInst::Create(s1, s2, s3, S->getName()+".gvnpre",
(*PI)->getTerminator());
else if (ExtractElementInst* S = dyn_cast<ExtractElementInst>(U))
- newVal = new ExtractElementInst(s1, s2, S->getName()+".gvnpre",
+ newVal = ExtractElementInst::Create(s1, s2, S->getName()+".gvnpre",
(*PI)->getTerminator());
else if (SelectInst* S = dyn_cast<SelectInst>(U))
newVal = SelectInst::Create(s1, s2, s3, S->getName()+".gvnpre",
Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=77044&r1=77043&r2=77044&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Fri Jul 24 21:28:41 2009
@@ -1734,9 +1734,9 @@
Value *LHS = II->getOperand(1);
Value *RHS = II->getOperand(2);
// Extract the element as scalars.
- LHS = InsertNewInstBefore(new ExtractElementInst(LHS,
+ LHS = InsertNewInstBefore(ExtractElementInst::Create(LHS,
ConstantInt::get(Type::Int32Ty, 0U, false), "tmp"), *II);
- RHS = InsertNewInstBefore(new ExtractElementInst(RHS,
+ RHS = InsertNewInstBefore(ExtractElementInst::Create(RHS,
ConstantInt::get(Type::Int32Ty, 0U, false), "tmp"), *II);
switch (II->getIntrinsicID()) {
@@ -9012,7 +9012,7 @@
if (SrcVTy->getNumElements() == 1) {
if (!isa<VectorType>(DestTy)) {
Instruction *Elem =
- new ExtractElementInst(Src, Context->getNullValue(Type::Int32Ty));
+ ExtractElementInst::Create(Src, Context->getNullValue(Type::Int32Ty));
InsertNewInstBefore(Elem, CI);
return CastInst::Create(Instruction::BitCast, Elem, DestTy);
}
@@ -9956,7 +9956,7 @@
if (ExtractedElts[Idx] == 0) {
Instruction *Elt =
- new ExtractElementInst(Idx < 16 ? Op0 : Op1,
+ ExtractElementInst::Create(Idx < 16 ? Op0 : Op1,
ConstantInt::get(Type::Int32Ty, Idx&15, false), "tmp");
InsertNewInstBefore(Elt, CI);
ExtractedElts[Idx] = Elt;
@@ -12419,10 +12419,10 @@
bool isConstantElt = isa<ConstantInt>(EI.getOperand(1));
if (CheapToScalarize(BO, isConstantElt)) {
ExtractElementInst *newEI0 =
- new ExtractElementInst(BO->getOperand(0), EI.getOperand(1),
+ ExtractElementInst::Create(BO->getOperand(0), EI.getOperand(1),
EI.getName()+".lhs");
ExtractElementInst *newEI1 =
- new ExtractElementInst(BO->getOperand(1), EI.getOperand(1),
+ ExtractElementInst::Create(BO->getOperand(1), EI.getOperand(1),
EI.getName()+".rhs");
InsertNewInstBefore(newEI0, EI);
InsertNewInstBefore(newEI1, EI);
@@ -12468,7 +12468,7 @@
} else {
return ReplaceInstUsesWith(EI, Context->getUndef(EI.getType()));
}
- return new ExtractElementInst(Src,
+ return ExtractElementInst::Create(Src,
ConstantInt::get(Type::Int32Ty, SrcIdx, false));
}
}
Modified: llvm/trunk/lib/VMCore/Instructions.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Instructions.cpp?rev=77044&r1=77043&r2=77044&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/Instructions.cpp (original)
+++ llvm/trunk/lib/VMCore/Instructions.cpp Fri Jul 24 21:28:41 2009
@@ -2982,7 +2982,7 @@
}
ExtractElementInst *ExtractElementInst::clone(LLVMContext&) const {
- return new ExtractElementInst(*this);
+ return ExtractElementInst::Create(*this);
}
InsertElementInst *InsertElementInst::clone(LLVMContext&) const {
More information about the llvm-commits
mailing list