summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Bitcode')
-rw-r--r--llvm/lib/Bitcode/Reader/BitcodeReader.cpp128
-rw-r--r--llvm/lib/Bitcode/Writer/BitcodeWriter.cpp58
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;
OpenPOWER on IntegriCloud