diff options
Diffstat (limited to 'llvm/lib/Bitcode')
-rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 128 | ||||
-rw-r--r-- | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | 58 |
2 files changed, 0 insertions, 186 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index f13fc0476eb..563e201336a 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -3793,134 +3793,6 @@ std::error_code BitcodeReader::parseFunctionBody(Function *F) { } break; } - // CLEANUPRET: [] or [ty,val] or [bb#] or [ty,val,bb#] - case bitc::FUNC_CODE_INST_CLEANUPRET: { - if (Record.size() < 2) - return error("Invalid record"); - unsigned Idx = 0; - bool HasReturnValue = !!Record[Idx++]; - bool HasUnwindDest = !!Record[Idx++]; - Value *RetVal = nullptr; - BasicBlock *UnwindDest = nullptr; - - if (HasReturnValue && getValueTypePair(Record, Idx, NextValueNo, RetVal)) - return error("Invalid record"); - if (HasUnwindDest) { - if (Idx == Record.size()) - return error("Invalid record"); - UnwindDest = getBasicBlock(Record[Idx++]); - if (!UnwindDest) - return error("Invalid record"); - } - - if (Record.size() != Idx) - return error("Invalid record"); - - I = CleanupReturnInst::Create(Context, RetVal, UnwindDest); - InstructionList.push_back(I); - break; - } - case bitc::FUNC_CODE_INST_CATCHRET: { // CATCHRET: [bb#] - if (Record.size() != 1) - return error("Invalid record"); - BasicBlock *BB = getBasicBlock(Record[0]); - if (!BB) - return error("Invalid record"); - I = CatchReturnInst::Create(BB); - InstructionList.push_back(I); - break; - } - case bitc::FUNC_CODE_INST_CATCHBLOCK: { // CATCHBLOCK: [ty,bb#,bb#,num,(ty,val)*] - if (Record.size() < 4) - return error("Invalid record"); - unsigned Idx = 0; - Type *Ty = getTypeByID(Record[Idx++]); - if (!Ty) - return error("Invalid record"); - BasicBlock *NormalBB = getBasicBlock(Record[Idx++]); - if (!NormalBB) - return error("Invalid record"); - BasicBlock *UnwindBB = getBasicBlock(Record[Idx++]); - if (!UnwindBB) - return error("Invalid record"); - unsigned NumArgOperands = Record[Idx++]; - SmallVector<Value *, 2> Args; - for (unsigned Op = 0; Op != NumArgOperands; ++Op) { - Value *Val; - if (getValueTypePair(Record, Idx, NextValueNo, Val)) - return error("Invalid record"); - Args.push_back(Val); - } - if (Record.size() != Idx) - return error("Invalid record"); - - I = CatchBlockInst::Create(Ty, NormalBB, UnwindBB, Args); - InstructionList.push_back(I); - break; - } - case bitc::FUNC_CODE_INST_TERMINATEBLOCK: { // TERMINATEBLOCK: [bb#,num,(ty,val)*] - if (Record.size() < 1) - return error("Invalid record"); - unsigned Idx = 0; - bool HasUnwindDest = !!Record[Idx++]; - BasicBlock *UnwindDest = nullptr; - if (HasUnwindDest) { - if (Idx == Record.size()) - return error("Invalid record"); - UnwindDest = getBasicBlock(Record[Idx++]); - if (!UnwindDest) - return error("Invalid record"); - } - unsigned NumArgOperands = Record[Idx++]; - SmallVector<Value *, 2> Args; - for (unsigned Op = 0; Op != NumArgOperands; ++Op) { - Value *Val; - if (getValueTypePair(Record, Idx, NextValueNo, Val)) - return error("Invalid record"); - Args.push_back(Val); - } - if (Record.size() != Idx) - return error("Invalid record"); - - I = TerminateBlockInst::Create(Context, UnwindDest, Args); - InstructionList.push_back(I); - break; - } - case bitc::FUNC_CODE_INST_CLEANUPBLOCK: { // CLEANUPBLOCK: [ty, num,(ty,val)*] - if (Record.size() < 2) - return error("Invalid record"); - unsigned Idx = 0; - Type *Ty = getTypeByID(Record[Idx++]); - if (!Ty) - return error("Invalid record"); - unsigned NumArgOperands = Record[Idx++]; - SmallVector<Value *, 2> Args; - for (unsigned Op = 0; Op != NumArgOperands; ++Op) { - Value *Val; - if (getValueTypePair(Record, Idx, NextValueNo, Val)) - return error("Invalid record"); - Args.push_back(Val); - } - if (Record.size() != Idx) - return error("Invalid record"); - - I = CleanupBlockInst::Create(Ty, Args); - InstructionList.push_back(I); - break; - } - case bitc::FUNC_CODE_INST_CATCHENDBLOCK: { // CATCHENDBLOCKINST: [bb#] or [] - if (Record.size() > 1) - return error("Invalid record"); - BasicBlock *BB = nullptr; - if (Record.size() == 1) { - BB = getBasicBlock(Record[0]); - if (!BB) - return error("Invalid record"); - } - I = CatchEndBlockInst::Create(Context, BB); - InstructionList.push_back(I); - break; - } case bitc::FUNC_CODE_INST_SWITCH: { // SWITCH: [opty, op0, op1, ...] // Check magic if ((Record[0] >> 16) == SWITCH_INST_MAGIC) { diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp index c1fd66668f8..622f7eaf078 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -1845,64 +1845,6 @@ static void WriteInstruction(const Instruction &I, unsigned InstID, Code = bitc::FUNC_CODE_INST_RESUME; PushValueAndType(I.getOperand(0), InstID, Vals, VE); break; - case Instruction::CleanupRet: { - Code = bitc::FUNC_CODE_INST_CLEANUPRET; - const auto &CRI = cast<CleanupReturnInst>(I); - Vals.push_back(CRI.hasReturnValue()); - Vals.push_back(CRI.hasUnwindDest()); - if (CRI.hasReturnValue()) - PushValueAndType(CRI.getReturnValue(), InstID, Vals, VE); - if (CRI.hasUnwindDest()) - Vals.push_back(VE.getValueID(CRI.getUnwindDest())); - break; - } - case Instruction::CatchRet: { - Code = bitc::FUNC_CODE_INST_CATCHRET; - const auto &CRI = cast<CatchReturnInst>(I); - Vals.push_back(VE.getValueID(CRI.getSuccessor())); - break; - } - case Instruction::CatchBlock: { - Code = bitc::FUNC_CODE_INST_CATCHBLOCK; - const auto &CBI = cast<CatchBlockInst>(I); - Vals.push_back(VE.getTypeID(CBI.getType())); - Vals.push_back(VE.getValueID(CBI.getNormalDest())); - Vals.push_back(VE.getValueID(CBI.getUnwindDest())); - unsigned NumArgOperands = CBI.getNumArgOperands(); - Vals.push_back(NumArgOperands); - for (unsigned Op = 0; Op != NumArgOperands; ++Op) - PushValueAndType(CBI.getArgOperand(Op), InstID, Vals, VE); - break; - } - case Instruction::TerminateBlock: { - Code = bitc::FUNC_CODE_INST_TERMINATEBLOCK; - const auto &TBI = cast<TerminateBlockInst>(I); - Vals.push_back(TBI.hasUnwindDest()); - if (TBI.hasUnwindDest()) - Vals.push_back(VE.getValueID(TBI.getUnwindDest())); - unsigned NumArgOperands = TBI.getNumArgOperands(); - Vals.push_back(NumArgOperands); - for (unsigned Op = 0; Op != NumArgOperands; ++Op) - PushValueAndType(TBI.getArgOperand(Op), InstID, Vals, VE); - break; - } - case Instruction::CleanupBlock: { - Code = bitc::FUNC_CODE_INST_CLEANUPBLOCK; - const auto &CBI = cast<CleanupBlockInst>(I); - Vals.push_back(VE.getTypeID(CBI.getType())); - unsigned NumOperands = CBI.getNumOperands(); - Vals.push_back(NumOperands); - for (unsigned Op = 0; Op != NumOperands; ++Op) - PushValueAndType(CBI.getOperand(Op), InstID, Vals, VE); - break; - } - case Instruction::CatchEndBlock: { - Code = bitc::FUNC_CODE_INST_CATCHENDBLOCK; - const auto &CEBI = cast<CatchEndBlockInst>(I); - if (CEBI.hasUnwindDest()) - Vals.push_back(VE.getValueID(CEBI.getUnwindDest())); - break; - } case Instruction::Unreachable: Code = bitc::FUNC_CODE_INST_UNREACHABLE; AbbrevToUse = FUNCTION_INST_UNREACHABLE_ABBREV; |