diff options
| author | David Majnemer <david.majnemer@gmail.com> | 2015-12-14 18:34:23 +0000 |
|---|---|---|
| committer | David Majnemer <david.majnemer@gmail.com> | 2015-12-14 18:34:23 +0000 |
| commit | bbfc7219ef121d345784b0c080a268beb051c736 (patch) | |
| tree | df2b7b2e6f57615a58d0d86aef7fa03081649176 /llvm/lib/IR/Instructions.cpp | |
| parent | feeefb214dfa398df4cec92b1e9f3e3219d3944f (diff) | |
| download | bcm5719-llvm-bbfc7219ef121d345784b0c080a268beb051c736.tar.gz bcm5719-llvm-bbfc7219ef121d345784b0c080a268beb051c736.zip | |
[IR] Remove terminatepad
It turns out that terminatepad gives little benefit over a cleanuppad
which calls the termination function. This is not sufficient to
implement fully generic filters but MSVC doesn't support them which
makes terminatepad a little over-designed.
Depends on D15478.
Differential Revision: http://reviews.llvm.org/D15479
llvm-svn: 255522
Diffstat (limited to 'llvm/lib/IR/Instructions.cpp')
| -rw-r--r-- | llvm/lib/IR/Instructions.cpp | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/llvm/lib/IR/Instructions.cpp b/llvm/lib/IR/Instructions.cpp index 82eb1e0f2f7..5863456adfc 100644 --- a/llvm/lib/IR/Instructions.cpp +++ b/llvm/lib/IR/Instructions.cpp @@ -981,60 +981,6 @@ FuncletPadInst::FuncletPadInst(Instruction::FuncletPadOps Op, Value *ParentPad, } //===----------------------------------------------------------------------===// -// TerminatePadInst Implementation -//===----------------------------------------------------------------------===// -void TerminatePadInst::init(Value *ParentPad, BasicBlock *BB, - ArrayRef<Value *> Args) { - if (BB) { - setInstructionSubclassData(getSubclassDataFromInstruction() | 1); - setUnwindDest(BB); - } - std::copy(Args.begin(), Args.end(), arg_begin()); - setParentPad(ParentPad); -} - -TerminatePadInst::TerminatePadInst(const TerminatePadInst &TPI) - : TerminatorInst(TPI.getType(), Instruction::TerminatePad, - OperandTraits<TerminatePadInst>::op_end(this) - - TPI.getNumOperands(), - TPI.getNumOperands()) { - setInstructionSubclassData(TPI.getSubclassDataFromInstruction()); - std::copy(TPI.op_begin(), TPI.op_end(), op_begin()); -} - -TerminatePadInst::TerminatePadInst(Value *ParentPad, BasicBlock *BB, - ArrayRef<Value *> Args, unsigned Values, - Instruction *InsertBefore) - : TerminatorInst(Type::getVoidTy(ParentPad->getContext()), - Instruction::TerminatePad, - OperandTraits<TerminatePadInst>::op_end(this) - Values, - Values, InsertBefore) { - init(ParentPad, BB, Args); -} - -TerminatePadInst::TerminatePadInst(Value *ParentPad, BasicBlock *BB, - ArrayRef<Value *> Args, unsigned Values, - BasicBlock *InsertAtEnd) - : TerminatorInst(Type::getVoidTy(ParentPad->getContext()), - Instruction::TerminatePad, - OperandTraits<TerminatePadInst>::op_end(this) - Values, - Values, InsertAtEnd) { - init(ParentPad, BB, Args); -} - -BasicBlock *TerminatePadInst::getSuccessorV(unsigned Idx) const { - assert(Idx == 0); - return getUnwindDest(); -} -unsigned TerminatePadInst::getNumSuccessorsV() const { - return getNumSuccessors(); -} -void TerminatePadInst::setSuccessorV(unsigned Idx, BasicBlock *B) { - assert(Idx == 0); - return setUnwindDest(B); -} - -//===----------------------------------------------------------------------===// // UnreachableInst Implementation //===----------------------------------------------------------------------===// @@ -4025,10 +3971,6 @@ FuncletPadInst *FuncletPadInst::cloneImpl() const { return new (getNumOperands()) FuncletPadInst(*this); } -TerminatePadInst *TerminatePadInst::cloneImpl() const { - return new (getNumOperands()) TerminatePadInst(*this); -} - UnreachableInst *UnreachableInst::cloneImpl() const { LLVMContext &Context = getContext(); return new UnreachableInst(Context); |

