Instruction::clone does not need to take an LLVMContext&. Remove that and

update all the callers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82889 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nick Lewycky 2009-09-27 07:38:41 +00:00
parent 975f5917a2
commit 6776064d19
16 changed files with 100 additions and 109 deletions

View File

@ -53,7 +53,7 @@ protected:
virtual void setSuccessorV(unsigned idx, BasicBlock *B) = 0;
public:
virtual TerminatorInst *clone(LLVMContext &Context) const = 0;
virtual TerminatorInst *clone() const = 0;
/// getNumSuccessors - Return the number of successors that this terminator
/// has.
@ -299,7 +299,7 @@ public:
return static_cast<BinaryOps>(Instruction::getOpcode());
}
virtual BinaryOperator *clone(LLVMContext &Context) const;
virtual BinaryOperator *clone() const;
/// swapOperands - Exchange the two operands to this instruction.
/// This instruction is safe to use on any binary instruction and

View File

@ -47,7 +47,7 @@ public:
/// * The instruction has no parent
/// * The instruction has no name
///
virtual Instruction *clone(LLVMContext &Context) const = 0;
virtual Instruction *clone() const = 0;
/// isIdenticalTo - Return true if the specified instruction is exactly
/// identical to the current one. This means that all operands match and any

View File

@ -80,7 +80,7 @@ public:
unsigned getAlignment() const { return (1u << SubclassData) >> 1; }
void setAlignment(unsigned Align);
virtual AllocationInst *clone(LLVMContext &Context) const = 0;
virtual AllocationInst *clone() const = 0;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const AllocationInst *) { return true; }
@ -129,7 +129,7 @@ public:
: AllocationInst(Ty, ArraySize,
Malloc, Align, NameStr, InsertBefore) {}
virtual MallocInst *clone(LLVMContext &Context) const;
virtual MallocInst *clone() const;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const MallocInst *) { return true; }
@ -179,7 +179,7 @@ public:
: AllocationInst(Ty, ArraySize, Alloca,
Align, NameStr, InsertAtEnd) {}
virtual AllocaInst *clone(LLVMContext &Context) const;
virtual AllocaInst *clone() const;
/// isStaticAlloca - Return true if this alloca is in the entry block of the
/// function and is a constant size. If so, the code generator will fold it
@ -209,7 +209,7 @@ public:
explicit FreeInst(Value *Ptr, Instruction *InsertBefore = 0);
FreeInst(Value *Ptr, BasicBlock *InsertAfter);
virtual FreeInst *clone(LLVMContext &Context) const;
virtual FreeInst *clone() const;
// Accessor methods for consistency with other memory operations
Value *getPointerOperand() { return getOperand(0); }
@ -265,7 +265,7 @@ public:
SubclassData = (SubclassData & ~1) | (V ? 1 : 0);
}
virtual LoadInst *clone(LLVMContext &Context) const;
virtual LoadInst *clone() const;
/// getAlignment - Return the alignment of the access that is being performed
///
@ -342,7 +342,7 @@ public:
void setAlignment(unsigned Align);
virtual StoreInst *clone(LLVMContext &Context) const;
virtual StoreInst *clone() const;
Value *getPointerOperand() { return getOperand(1); }
const Value *getPointerOperand() const { return getOperand(1); }
@ -525,7 +525,7 @@ public:
return GEP;
}
virtual GetElementPtrInst *clone(LLVMContext &Context) const;
virtual GetElementPtrInst *clone() const;
/// Transparently provide more efficient getOperand methods.
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
@ -822,7 +822,7 @@ public:
Op<0>().swap(Op<1>());
}
virtual ICmpInst *clone(LLVMContext &Context) const;
virtual ICmpInst *clone() const;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const ICmpInst *) { return true; }
@ -931,7 +931,7 @@ public:
Op<0>().swap(Op<1>());
}
virtual FCmpInst *clone(LLVMContext &Context) const;
virtual FCmpInst *clone() const;
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const FCmpInst *) { return true; }
@ -1053,7 +1053,7 @@ public:
SubclassData = (SubclassData & ~1) | unsigned(isTC);
}
virtual CallInst *clone(LLVMContext &Context) const;
virtual CallInst *clone() const;
/// Provide fast operand accessors
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
@ -1247,7 +1247,7 @@ public:
return static_cast<OtherOps>(Instruction::getOpcode());
}
virtual SelectInst *clone(LLVMContext &Context) const;
virtual SelectInst *clone() const;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const SelectInst *) { return true; }
@ -1285,7 +1285,7 @@ public:
setName(NameStr);
}
virtual VAArgInst *clone(LLVMContext &Context) const;
virtual VAArgInst *clone() const;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const VAArgInst *) { return true; }
@ -1325,7 +1325,7 @@ public:
/// formed with the specified operands.
static bool isValidOperands(const Value *Vec, const Value *Idx);
virtual ExtractElementInst *clone(LLVMContext &Context) const;
virtual ExtractElementInst *clone() const;
Value *getVectorOperand() { return Op<0>(); }
Value *getIndexOperand() { return Op<1>(); }
@ -1386,7 +1386,7 @@ public:
static bool isValidOperands(const Value *Vec, const Value *NewElt,
const Value *Idx);
virtual InsertElementInst *clone(LLVMContext &Context) const;
virtual InsertElementInst *clone() const;
/// getType - Overload to return most specific vector type.
///
@ -1437,7 +1437,7 @@ public:
static bool isValidOperands(const Value *V1, const Value *V2,
const Value *Mask);
virtual ShuffleVectorInst *clone(LLVMContext &Context) const;
virtual ShuffleVectorInst *clone() const;
/// getType - Overload to return most specific vector type.
///
@ -1581,7 +1581,7 @@ public:
return new ExtractValueInst(Agg, Idxs, Idxs + 1, NameStr, InsertAtEnd);
}
virtual ExtractValueInst *clone(LLVMContext &Context) const;
virtual ExtractValueInst *clone() const;
/// getIndexedType - Returns the type of the element that would be extracted
/// with an extractvalue instruction with the specified parameters.
@ -1751,7 +1751,7 @@ public:
return new InsertValueInst(Agg, Val, Idx, NameStr, InsertAtEnd);
}
virtual InsertValueInst *clone(LLVMContext &Context) const;
virtual InsertValueInst *clone() const;
/// Transparently provide more efficient getOperand methods.
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
@ -1880,7 +1880,7 @@ public:
resizeOperands(NumValues*2);
}
virtual PHINode *clone(LLVMContext &Context) const;
virtual PHINode *clone() const;
/// Provide fast operand accessors
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
@ -2047,7 +2047,7 @@ public:
}
virtual ~ReturnInst();
virtual ReturnInst *clone(LLVMContext &Context) const;
virtual ReturnInst *clone() const;
/// Provide fast operand accessors
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
@ -2129,7 +2129,7 @@ public:
/// Transparently provide more efficient getOperand methods.
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
virtual BranchInst *clone(LLVMContext &Context) const;
virtual BranchInst *clone() const;
bool isUnconditional() const { return getNumOperands() == 1; }
bool isConditional() const { return getNumOperands() == 3; }
@ -2299,7 +2299,7 @@ public:
///
void removeCase(unsigned idx);
virtual SwitchInst *clone(LLVMContext &Context) const;
virtual SwitchInst *clone() const;
unsigned getNumSuccessors() const { return getNumOperands()/2; }
BasicBlock *getSuccessor(unsigned idx) const {
@ -2413,7 +2413,7 @@ public:
Values, NameStr, InsertAtEnd);
}
virtual InvokeInst *clone(LLVMContext &Context) const;
virtual InvokeInst *clone() const;
/// Provide fast operand accessors
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
@ -2603,7 +2603,7 @@ public:
explicit UnwindInst(LLVMContext &C, Instruction *InsertBefore = 0);
explicit UnwindInst(LLVMContext &C, BasicBlock *InsertAtEnd);
virtual UnwindInst *clone(LLVMContext &Context) const;
virtual UnwindInst *clone() const;
unsigned getNumSuccessors() const { return 0; }
@ -2640,7 +2640,7 @@ public:
explicit UnreachableInst(LLVMContext &C, Instruction *InsertBefore = 0);
explicit UnreachableInst(LLVMContext &C, BasicBlock *InsertAtEnd);
virtual UnreachableInst *clone(LLVMContext &Context) const;
virtual UnreachableInst *clone() const;
unsigned getNumSuccessors() const { return 0; }
@ -2682,7 +2682,7 @@ public:
);
/// @brief Clone an identical TruncInst
virtual TruncInst *clone(LLVMContext &Context) const;
virtual TruncInst *clone() const;
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const TruncInst *) { return true; }
@ -2718,7 +2718,7 @@ public:
);
/// @brief Clone an identical ZExtInst
virtual ZExtInst *clone(LLVMContext &Context) const;
virtual ZExtInst *clone() const;
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const ZExtInst *) { return true; }
@ -2754,7 +2754,7 @@ public:
);
/// @brief Clone an identical SExtInst
virtual SExtInst *clone(LLVMContext &Context) const;
virtual SExtInst *clone() const;
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const SExtInst *) { return true; }
@ -2790,7 +2790,7 @@ public:
);
/// @brief Clone an identical FPTruncInst
virtual FPTruncInst *clone(LLVMContext &Context) const;
virtual FPTruncInst *clone() const;
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const FPTruncInst *) { return true; }
@ -2826,7 +2826,7 @@ public:
);
/// @brief Clone an identical FPExtInst
virtual FPExtInst *clone(LLVMContext &Context) const;
virtual FPExtInst *clone() const;
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const FPExtInst *) { return true; }
@ -2862,7 +2862,7 @@ public:
);
/// @brief Clone an identical UIToFPInst
virtual UIToFPInst *clone(LLVMContext &Context) const;
virtual UIToFPInst *clone() const;
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const UIToFPInst *) { return true; }
@ -2898,7 +2898,7 @@ public:
);
/// @brief Clone an identical SIToFPInst
virtual SIToFPInst *clone(LLVMContext &Context) const;
virtual SIToFPInst *clone() const;
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const SIToFPInst *) { return true; }
@ -2934,7 +2934,7 @@ public:
);
/// @brief Clone an identical FPToUIInst
virtual FPToUIInst *clone(LLVMContext &Context) const;
virtual FPToUIInst *clone() const;
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const FPToUIInst *) { return true; }
@ -2970,7 +2970,7 @@ public:
);
/// @brief Clone an identical FPToSIInst
virtual FPToSIInst *clone(LLVMContext &Context) const;
virtual FPToSIInst *clone() const;
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const FPToSIInst *) { return true; }
@ -3006,7 +3006,7 @@ public:
);
/// @brief Clone an identical IntToPtrInst
virtual IntToPtrInst *clone(LLVMContext &Context) const;
virtual IntToPtrInst *clone() const;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const IntToPtrInst *) { return true; }
@ -3042,7 +3042,7 @@ public:
);
/// @brief Clone an identical PtrToIntInst
virtual PtrToIntInst *clone(LLVMContext &Context) const;
virtual PtrToIntInst *clone() const;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const PtrToIntInst *) { return true; }
@ -3078,7 +3078,7 @@ public:
);
/// @brief Clone an identical BitCastInst
virtual BitCastInst *clone(LLVMContext &Context) const;
virtual BitCastInst *clone() const;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const BitCastInst *) { return true; }

View File

@ -397,7 +397,7 @@ Value* ProfilerRS::Translate(Value* v) {
return i;
} else {
//translate this
Instruction* i2 = i->clone(v->getContext());
Instruction* i2 = i->clone();
if (i->hasName())
i2->setName("dup_" + i->getName());
TransCache[i] = i2;

View File

@ -2059,7 +2059,7 @@ bool GVN::performPRE(Function& F) {
// will be available in the predecessor by the time we need them. Any
// that weren't original present will have been instantiated earlier
// in this loop.
Instruction *PREInstr = CurInst->clone(CurInst->getContext());
Instruction *PREInstr = CurInst->clone();
bool success = true;
for (unsigned i = 0, e = CurInst->getNumOperands(); i != e; ++i) {
Value *Op = PREInstr->getOperand(i);

View File

@ -292,7 +292,7 @@ void IndVarSimplify::RewriteLoopExitValues(Loop *L,
if (NumPreds != 1) {
// Clone the PHI and delete the original one. This lets IVUsers and
// any other maps purge the original user from their records.
PHINode *NewPN = PN->clone(PN->getContext());
PHINode *NewPN = PN->clone();
NewPN->takeName(PN);
NewPN->insertBefore(PN);
PN->replaceAllUsesWith(NewPN);

View File

@ -934,7 +934,7 @@ bool JumpThreading::ThreadEdge(BasicBlock *BB, BasicBlock *PredBB,
// Clone the non-phi instructions of BB into NewBB, keeping track of the
// mapping and using it to remap operands in the cloned instructions.
for (; !isa<TerminatorInst>(BI); ++BI) {
Instruction *New = BI->clone(BI->getContext());
Instruction *New = BI->clone();
New->setName(BI->getName());
NewBB->getInstList().push_back(New);
ValueMapping[BI] = New;

View File

@ -36,7 +36,6 @@
#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Instructions.h"
#include "llvm/LLVMContext.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/LoopPass.h"
@ -476,8 +475,6 @@ void LICM::sink(Instruction &I) {
++NumSunk;
Changed = true;
LLVMContext &Context = I.getContext();
// The case where there is only a single exit node of this loop is common
// enough that we handle it as a special (more efficient) case. It is more
// efficient to handle because there are no PHI nodes that need to be placed.
@ -573,7 +570,7 @@ void LICM::sink(Instruction &I) {
ExitBlock->getInstList().insert(InsertPt, &I);
New = &I;
} else {
New = I.clone(Context);
New = I.clone();
CurAST->copyValue(&I, New);
if (!I.getName().empty())
New->setName(I.getName()+".le");
@ -596,7 +593,7 @@ void LICM::sink(Instruction &I) {
if (AI) {
std::vector<AllocaInst*> Allocas;
Allocas.push_back(AI);
PromoteMemToReg(Allocas, *DT, *DF, Context, CurAST);
PromoteMemToReg(Allocas, *DT, *DF, I.getContext(), CurAST);
}
}
}

View File

@ -237,7 +237,7 @@ bool LoopRotate::rotateLoop(Loop *Lp, LPPassManager &LPM) {
// This is not a PHI instruction. Insert its clone into original pre-header.
// If this instruction is using a value from same basic block then
// update it to use value from cloned instruction.
Instruction *C = In->clone(In->getContext());
Instruction *C = In->clone();
C->setName(In->getName());
OrigPreHeader->getInstList().push_back(C);

View File

@ -24,7 +24,6 @@
#include "llvm/Constants.h"
#include "llvm/Instructions.h"
#include "llvm/IntrinsicInst.h"
#include "llvm/LLVMContext.h"
#include "llvm/Type.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Analysis/Dominators.h"
@ -2303,7 +2302,6 @@ void LoopStrengthReduce::OptimizeLoopTermCond(Loop *L) {
// one register value.
BasicBlock *LatchBlock = L->getLoopLatch();
BasicBlock *ExitingBlock = L->getExitingBlock();
LLVMContext &Context = LatchBlock->getContext();
if (!ExitingBlock)
// Multiple exits, just look at the exit in the latch block if there is one.
@ -2394,7 +2392,7 @@ void LoopStrengthReduce::OptimizeLoopTermCond(Loop *L) {
Cond->moveBefore(TermBr);
} else {
// Otherwise, clone the terminating condition and insert into the loopend.
Cond = cast<ICmpInst>(Cond->clone(Context));
Cond = cast<ICmpInst>(Cond->clone());
Cond->setName(L->getHeader()->getName() + ".termcond");
LatchBlock->getInstList().insert(TermBr, Cond);

View File

@ -306,7 +306,7 @@ void TailDup::eliminateUnconditionalBranch(BranchInst *Branch) {
// keeping track of the mapping...
//
for (; BI != DestBlock->end(); ++BI) {
Instruction *New = BI->clone(BI->getContext());
Instruction *New = BI->clone();
New->setName(BI->getName());
SourceBlock->getInstList().push_back(New);
ValueMapping[BI] = New;

View File

@ -663,7 +663,7 @@ void llvm::CopyPrecedingStopPoint(Instruction *I,
if (I != I->getParent()->begin()) {
BasicBlock::iterator BBI = I; --BBI;
if (DbgStopPointInst *DSPI = dyn_cast<DbgStopPointInst>(BBI)) {
CallInst *newDSPI = DSPI->clone(I->getContext());
CallInst *newDSPI = DSPI->clone();
newDSPI->insertBefore(InsertPos);
}
}

View File

@ -43,7 +43,7 @@ BasicBlock *llvm::CloneBasicBlock(const BasicBlock *BB,
// Loop over all instructions, and copy them over.
for (BasicBlock::const_iterator II = BB->begin(), IE = BB->end();
II != IE; ++II) {
Instruction *NewInst = II->clone(BB->getContext());
Instruction *NewInst = II->clone();
if (II->hasName())
NewInst->setName(II->getName()+NameSuffix);
NewBB->getInstList().push_back(NewInst);
@ -248,7 +248,7 @@ void PruningFunctionCloner::CloneBlock(const BasicBlock *BB,
continue;
}
Instruction *NewInst = II->clone(BB->getContext());
Instruction *NewInst = II->clone();
if (II->hasName())
NewInst->setName(II->getName()+NameSuffix);
NewBB->getInstList().push_back(NewInst);
@ -296,7 +296,7 @@ void PruningFunctionCloner::CloneBlock(const BasicBlock *BB,
}
if (!TerminatorDone) {
Instruction *NewInst = OldTI->clone(BB->getContext());
Instruction *NewInst = OldTI->clone();
if (OldTI->hasName())
NewInst->setName(OldTI->getName()+NameSuffix);
NewBB->getInstList().push_back(NewInst);

View File

@ -374,7 +374,7 @@ bool llvm::InlineFunction(CallSite CS, CallGraph *CG, const TargetData *TD,
BI != BE; ++BI) {
if (DbgStopPointInst *DSPI = dyn_cast<DbgStopPointInst>(BI)) {
if (DbgRegionEndInst *NewDREI =
dyn_cast<DbgRegionEndInst>(DREI->clone(Context)))
dyn_cast<DbgRegionEndInst>(DREI->clone()))
NewDREI->insertAfter(DSPI);
break;
}

View File

@ -16,7 +16,6 @@
#include "llvm/Constants.h"
#include "llvm/Instructions.h"
#include "llvm/IntrinsicInst.h"
#include "llvm/LLVMContext.h"
#include "llvm/Type.h"
#include "llvm/DerivedTypes.h"
#include "llvm/GlobalVariable.h"
@ -911,7 +910,7 @@ HoistTerminator:
return true;
// Okay, it is safe to hoist the terminator.
Instruction *NT = I1->clone(BB1->getContext());
Instruction *NT = I1->clone();
BIParent->getInstList().insert(BI, NT);
if (NT->getType() != Type::getVoidTy(BB1->getContext())) {
I1->replaceAllUsesWith(NT);
@ -1151,7 +1150,6 @@ static bool BlockIsSimpleEnoughToThreadThrough(BasicBlock *BB) {
/// ultimate destination.
static bool FoldCondBranchOnPHI(BranchInst *BI) {
BasicBlock *BB = BI->getParent();
LLVMContext &Context = BB->getContext();
PHINode *PN = dyn_cast<PHINode>(BI->getCondition());
// NOTE: we currently cannot transform this case if the PHI node is used
// outside of the block.
@ -1205,7 +1203,7 @@ static bool FoldCondBranchOnPHI(BranchInst *BI) {
TranslateMap[PN] = PN->getIncomingValueForBlock(PredBB);
} else {
// Clone the instruction.
Instruction *N = BBI->clone(Context);
Instruction *N = BBI->clone();
if (BBI->hasName()) N->setName(BBI->getName()+".c");
// Update operands due to translation.
@ -1218,7 +1216,7 @@ static bool FoldCondBranchOnPHI(BranchInst *BI) {
}
// Check for trivial simplification.
if (Constant *C = ConstantFoldInstruction(N, Context)) {
if (Constant *C = ConstantFoldInstruction(N, BB->getContext())) {
TranslateMap[BBI] = C;
delete N; // Constant folded away, don't need actual inst
} else {
@ -1554,7 +1552,7 @@ bool llvm::FoldBranchToCommonDest(BranchInst *BI) {
// Clone Cond into the predecessor basic block, and or/and the
// two conditions together.
Instruction *New = Cond->clone(BB->getContext());
Instruction *New = Cond->clone();
PredBlock->getInstList().insert(PBI, New);
New->takeName(Cond);
Cond->setName(New->getName()+".old");
@ -1814,7 +1812,7 @@ bool llvm::SimplifyCFG(BasicBlock *BB) {
<< "INTO UNCOND BRANCH PRED: " << *Pred);
Instruction *UncondBranch = Pred->getTerminator();
// Clone the return and add it to the end of the predecessor.
Instruction *NewRet = RI->clone(BB->getContext());
Instruction *NewRet = RI->clone();
Pred->getInstList().push_back(NewRet);
BasicBlock::iterator BBI = RI;

View File

@ -2999,7 +2999,7 @@ void SwitchInst::setSuccessorV(unsigned idx, BasicBlock *B) {
// Define these methods here so vtables don't get emitted into every translation
// unit that uses these classes.
GetElementPtrInst *GetElementPtrInst::clone(LLVMContext&) const {
GetElementPtrInst *GetElementPtrInst::clone() const {
GetElementPtrInst *New = new(getNumOperands()) GetElementPtrInst(*this);
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3009,7 +3009,7 @@ GetElementPtrInst *GetElementPtrInst::clone(LLVMContext&) const {
return New;
}
BinaryOperator *BinaryOperator::clone(LLVMContext&) const {
BinaryOperator *BinaryOperator::clone() const {
BinaryOperator *New = Create(getOpcode(), Op<0>(), Op<1>());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3019,7 +3019,7 @@ BinaryOperator *BinaryOperator::clone(LLVMContext&) const {
return New;
}
FCmpInst* FCmpInst::clone(LLVMContext &Context) const {
FCmpInst* FCmpInst::clone() const {
FCmpInst *New = new FCmpInst(getPredicate(), Op<0>(), Op<1>());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3028,7 +3028,7 @@ FCmpInst* FCmpInst::clone(LLVMContext &Context) const {
}
return New;
}
ICmpInst* ICmpInst::clone(LLVMContext &Context) const {
ICmpInst* ICmpInst::clone() const {
ICmpInst *New = new ICmpInst(getPredicate(), Op<0>(), Op<1>());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3038,7 +3038,7 @@ ICmpInst* ICmpInst::clone(LLVMContext &Context) const {
return New;
}
ExtractValueInst *ExtractValueInst::clone(LLVMContext&) const {
ExtractValueInst *ExtractValueInst::clone() const {
ExtractValueInst *New = new ExtractValueInst(*this);
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3047,7 +3047,7 @@ ExtractValueInst *ExtractValueInst::clone(LLVMContext&) const {
}
return New;
}
InsertValueInst *InsertValueInst::clone(LLVMContext&) const {
InsertValueInst *InsertValueInst::clone() const {
InsertValueInst *New = new InsertValueInst(*this);
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3057,7 +3057,7 @@ InsertValueInst *InsertValueInst::clone(LLVMContext&) const {
return New;
}
MallocInst *MallocInst::clone(LLVMContext&) const {
MallocInst *MallocInst::clone() const {
MallocInst *New = new MallocInst(getAllocatedType(),
(Value*)getOperand(0),
getAlignment());
@ -3069,7 +3069,7 @@ MallocInst *MallocInst::clone(LLVMContext&) const {
return New;
}
AllocaInst *AllocaInst::clone(LLVMContext&) const {
AllocaInst *AllocaInst::clone() const {
AllocaInst *New = new AllocaInst(getAllocatedType(),
(Value*)getOperand(0),
getAlignment());
@ -3081,7 +3081,7 @@ AllocaInst *AllocaInst::clone(LLVMContext&) const {
return New;
}
FreeInst *FreeInst::clone(LLVMContext&) const {
FreeInst *FreeInst::clone() const {
FreeInst *New = new FreeInst(getOperand(0));
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3091,7 +3091,7 @@ FreeInst *FreeInst::clone(LLVMContext&) const {
return New;
}
LoadInst *LoadInst::clone(LLVMContext&) const {
LoadInst *LoadInst::clone() const {
LoadInst *New = new LoadInst(getOperand(0),
Twine(), isVolatile(),
getAlignment());
@ -3103,7 +3103,7 @@ LoadInst *LoadInst::clone(LLVMContext&) const {
return New;
}
StoreInst *StoreInst::clone(LLVMContext&) const {
StoreInst *StoreInst::clone() const {
StoreInst *New = new StoreInst(getOperand(0), getOperand(1),
isVolatile(), getAlignment());
New->SubclassOptionalData = SubclassOptionalData;
@ -3114,7 +3114,7 @@ StoreInst *StoreInst::clone(LLVMContext&) const {
return New;
}
TruncInst *TruncInst::clone(LLVMContext&) const {
TruncInst *TruncInst::clone() const {
TruncInst *New = new TruncInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3124,7 +3124,7 @@ TruncInst *TruncInst::clone(LLVMContext&) const {
return New;
}
ZExtInst *ZExtInst::clone(LLVMContext&) const {
ZExtInst *ZExtInst::clone() const {
ZExtInst *New = new ZExtInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3134,7 +3134,7 @@ ZExtInst *ZExtInst::clone(LLVMContext&) const {
return New;
}
SExtInst *SExtInst::clone(LLVMContext&) const {
SExtInst *SExtInst::clone() const {
SExtInst *New = new SExtInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3144,7 +3144,7 @@ SExtInst *SExtInst::clone(LLVMContext&) const {
return New;
}
FPTruncInst *FPTruncInst::clone(LLVMContext&) const {
FPTruncInst *FPTruncInst::clone() const {
FPTruncInst *New = new FPTruncInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3154,7 +3154,7 @@ FPTruncInst *FPTruncInst::clone(LLVMContext&) const {
return New;
}
FPExtInst *FPExtInst::clone(LLVMContext&) const {
FPExtInst *FPExtInst::clone() const {
FPExtInst *New = new FPExtInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3164,7 +3164,7 @@ FPExtInst *FPExtInst::clone(LLVMContext&) const {
return New;
}
UIToFPInst *UIToFPInst::clone(LLVMContext&) const {
UIToFPInst *UIToFPInst::clone() const {
UIToFPInst *New = new UIToFPInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3174,7 +3174,7 @@ UIToFPInst *UIToFPInst::clone(LLVMContext&) const {
return New;
}
SIToFPInst *SIToFPInst::clone(LLVMContext&) const {
SIToFPInst *SIToFPInst::clone() const {
SIToFPInst *New = new SIToFPInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3184,7 +3184,7 @@ SIToFPInst *SIToFPInst::clone(LLVMContext&) const {
return New;
}
FPToUIInst *FPToUIInst::clone(LLVMContext&) const {
FPToUIInst *FPToUIInst::clone() const {
FPToUIInst *New = new FPToUIInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3194,7 +3194,7 @@ FPToUIInst *FPToUIInst::clone(LLVMContext&) const {
return New;
}
FPToSIInst *FPToSIInst::clone(LLVMContext&) const {
FPToSIInst *FPToSIInst::clone() const {
FPToSIInst *New = new FPToSIInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3204,7 +3204,7 @@ FPToSIInst *FPToSIInst::clone(LLVMContext&) const {
return New;
}
PtrToIntInst *PtrToIntInst::clone(LLVMContext&) const {
PtrToIntInst *PtrToIntInst::clone() const {
PtrToIntInst *New = new PtrToIntInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3214,7 +3214,7 @@ PtrToIntInst *PtrToIntInst::clone(LLVMContext&) const {
return New;
}
IntToPtrInst *IntToPtrInst::clone(LLVMContext&) const {
IntToPtrInst *IntToPtrInst::clone() const {
IntToPtrInst *New = new IntToPtrInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3224,7 +3224,7 @@ IntToPtrInst *IntToPtrInst::clone(LLVMContext&) const {
return New;
}
BitCastInst *BitCastInst::clone(LLVMContext&) const {
BitCastInst *BitCastInst::clone() const {
BitCastInst *New = new BitCastInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3234,7 +3234,7 @@ BitCastInst *BitCastInst::clone(LLVMContext&) const {
return New;
}
CallInst *CallInst::clone(LLVMContext&) const {
CallInst *CallInst::clone() const {
CallInst *New = new(getNumOperands()) CallInst(*this);
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3244,7 +3244,7 @@ CallInst *CallInst::clone(LLVMContext&) const {
return New;
}
SelectInst *SelectInst::clone(LLVMContext&) const {
SelectInst *SelectInst::clone() const {
SelectInst *New = SelectInst::Create(getOperand(0),
getOperand(1),
getOperand(2));
@ -3256,7 +3256,7 @@ SelectInst *SelectInst::clone(LLVMContext&) const {
return New;
}
VAArgInst *VAArgInst::clone(LLVMContext&) const {
VAArgInst *VAArgInst::clone() const {
VAArgInst *New = new VAArgInst(getOperand(0), getType());
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3266,7 +3266,7 @@ VAArgInst *VAArgInst::clone(LLVMContext&) const {
return New;
}
ExtractElementInst *ExtractElementInst::clone(LLVMContext&) const {
ExtractElementInst *ExtractElementInst::clone() const {
ExtractElementInst *New = ExtractElementInst::Create(getOperand(0),
getOperand(1));
New->SubclassOptionalData = SubclassOptionalData;
@ -3277,7 +3277,7 @@ ExtractElementInst *ExtractElementInst::clone(LLVMContext&) const {
return New;
}
InsertElementInst *InsertElementInst::clone(LLVMContext&) const {
InsertElementInst *InsertElementInst::clone() const {
InsertElementInst *New = InsertElementInst::Create(getOperand(0),
getOperand(1),
getOperand(2));
@ -3289,7 +3289,7 @@ InsertElementInst *InsertElementInst::clone(LLVMContext&) const {
return New;
}
ShuffleVectorInst *ShuffleVectorInst::clone(LLVMContext&) const {
ShuffleVectorInst *ShuffleVectorInst::clone() const {
ShuffleVectorInst *New = new ShuffleVectorInst(getOperand(0),
getOperand(1),
getOperand(2));
@ -3301,7 +3301,7 @@ ShuffleVectorInst *ShuffleVectorInst::clone(LLVMContext&) const {
return New;
}
PHINode *PHINode::clone(LLVMContext&) const {
PHINode *PHINode::clone() const {
PHINode *New = new PHINode(*this);
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3311,7 +3311,7 @@ PHINode *PHINode::clone(LLVMContext&) const {
return New;
}
ReturnInst *ReturnInst::clone(LLVMContext&) const {
ReturnInst *ReturnInst::clone() const {
ReturnInst *New = new(getNumOperands()) ReturnInst(*this);
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3321,7 +3321,7 @@ ReturnInst *ReturnInst::clone(LLVMContext&) const {
return New;
}
BranchInst *BranchInst::clone(LLVMContext&) const {
BranchInst *BranchInst::clone() const {
unsigned Ops(getNumOperands());
BranchInst *New = new(Ops, Ops == 1) BranchInst(*this);
New->SubclassOptionalData = SubclassOptionalData;
@ -3332,7 +3332,7 @@ BranchInst *BranchInst::clone(LLVMContext&) const {
return New;
}
SwitchInst *SwitchInst::clone(LLVMContext&) const {
SwitchInst *SwitchInst::clone() const {
SwitchInst *New = new SwitchInst(*this);
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3342,7 +3342,7 @@ SwitchInst *SwitchInst::clone(LLVMContext&) const {
return New;
}
InvokeInst *InvokeInst::clone(LLVMContext&) const {
InvokeInst *InvokeInst::clone() const {
InvokeInst *New = new(getNumOperands()) InvokeInst(*this);
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
@ -3352,22 +3352,20 @@ InvokeInst *InvokeInst::clone(LLVMContext&) const {
return New;
}
UnwindInst *UnwindInst::clone(LLVMContext &C) const {
UnwindInst *New = new UnwindInst(C);
UnwindInst *UnwindInst::clone() const {
LLVMContext &Context = getContext();
UnwindInst *New = new UnwindInst(Context);
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
LLVMContext &Context = getContext();
if (hasMetadata())
Context.pImpl->TheMetadata.ValueIsCloned(this, New);
}
return New;
}
UnreachableInst *UnreachableInst::clone(LLVMContext &C) const {
UnreachableInst *New = new UnreachableInst(C);
UnreachableInst *UnreachableInst::clone() const {
LLVMContext &Context = getContext();
UnreachableInst *New = new UnreachableInst(Context);
New->SubclassOptionalData = SubclassOptionalData;
if (hasMetadata()) {
LLVMContext &Context = getContext();
if (hasMetadata())
Context.pImpl->TheMetadata.ValueIsCloned(this, New);
}
return New;
}