aboutsummaryrefslogtreecommitdiff
path: root/lib/AsmParser/LLParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/AsmParser/LLParser.cpp')
-rw-r--r--lib/AsmParser/LLParser.cpp65
1 files changed, 0 insertions, 65 deletions
diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp
index f412c1c89a..4727fac8ef 100644
--- a/lib/AsmParser/LLParser.cpp
+++ b/lib/AsmParser/LLParser.cpp
@@ -2885,7 +2885,6 @@ int LLParser::ParseInstruction(Instruction *&Inst, BasicBlock *BB,
case lltok::kw_switch: return ParseSwitch(Inst, PFS);
case lltok::kw_indirectbr: return ParseIndirectBr(Inst, PFS);
case lltok::kw_invoke: return ParseInvoke(Inst, PFS);
- case lltok::kw_resume: return ParseResume(Inst, PFS);
// Binary Operators.
case lltok::kw_add:
case lltok::kw_sub:
@@ -2945,7 +2944,6 @@ int LLParser::ParseInstruction(Instruction *&Inst, BasicBlock *BB,
case lltok::kw_insertelement: return ParseInsertElement(Inst, PFS);
case lltok::kw_shufflevector: return ParseShuffleVector(Inst, PFS);
case lltok::kw_phi: return ParsePHI(Inst, PFS);
- case lltok::kw_landingpad: return ParseLandingPad(Inst, PFS);
case lltok::kw_call: return ParseCall(Inst, PFS, false);
case lltok::kw_tail: return ParseCall(Inst, PFS, true);
// Memory.
@@ -3255,18 +3253,7 @@ bool LLParser::ParseInvoke(Instruction *&Inst, PerFunctionState &PFS) {
return false;
}
-/// ParseResume
-/// ::= 'resume' TypeAndValue
-bool LLParser::ParseResume(Instruction *&Inst, PerFunctionState &PFS) {
- Value *Exn; LocTy ExnLoc;
- LocTy Loc = Lex.getLoc();
- if (ParseTypeAndValue(Exn, ExnLoc, PFS))
- return true;
- ResumeInst *RI = ResumeInst::Create(Context, Exn);
- Inst = RI;
- return false;
-}
//===----------------------------------------------------------------------===//
// Binary Operators.
@@ -3514,58 +3501,6 @@ int LLParser::ParsePHI(Instruction *&Inst, PerFunctionState &PFS) {
return AteExtraComma ? InstExtraComma : InstNormal;
}
-/// ParseLandingPad
-/// ::= 'landingpad' Type 'personality' TypeAndValue 'cleanup'?
-/// (ClauseID ClauseList)+
-/// ClauseID
-/// ::= 'catch'
-/// ::= 'filter'
-/// ClauseList
-/// ::= TypeAndValue (',' TypeAndValue)*
-bool LLParser::ParseLandingPad(Instruction *&Inst, PerFunctionState &PFS) {
- Type *Ty = 0; LocTy TyLoc;
- Value *PersFn; LocTy PersFnLoc;
- LocTy LPLoc = Lex.getLoc();
-
- if (ParseType(Ty, TyLoc) ||
- ParseToken(lltok::kw_personality, "expected 'personality'") ||
- ParseTypeAndValue(PersFn, PersFnLoc, PFS))
- return true;
-
- bool IsCleanup = EatIfPresent(lltok::kw_cleanup);
-
- SmallVector<std::pair<LandingPadInst::ClauseType, Constant*>, 16> Clauses;
- while (Lex.getKind() == lltok::kw_catch || Lex.getKind() == lltok::kw_filter){
- LandingPadInst::ClauseType CT;
- if (Lex.getKind() == lltok::kw_catch) {
- CT = LandingPadInst::Catch;
- ParseToken(lltok::kw_catch, "expected 'catch'");
- } else {
- CT = LandingPadInst::Filter;
- ParseToken(lltok::kw_filter, "expected 'filter'");
- }
-
- do {
- Value *V; LocTy VLoc;
- if (ParseTypeAndValue(V, VLoc, PFS))
- return true;
- Clauses.push_back(std::make_pair(CT, cast<Constant>(V)));
- } while (EatIfPresent(lltok::comma));
- }
-
- LandingPadInst *LP = LandingPadInst::Create(Ty, cast<Function>(PersFn),
- Clauses.size());
- LP->setCleanup(IsCleanup);
-
- for (SmallVectorImpl<std::pair<LandingPadInst::ClauseType,
- Constant*> >::iterator
- I = Clauses.begin(), E = Clauses.end(); I != E; ++I)
- LP->addClause(I->first, I->second);
-
- Inst = LP;
- return false;
-}
-
/// ParseCall
/// ::= 'tail'? 'call' OptionalCallingConv OptionalAttrs Type Value
/// ParameterList OptionalAttrs