summaryrefslogtreecommitdiffstats
path: root/llvm/lib/AsmParser/LLParser.h
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-02-03 21:54:14 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-02-03 21:54:14 +0000
commit4e4aa7053503a00c29fadaec82e2f399bc9da492 (patch)
treed96c4bb1895e44a477fa4131e76d73bbbea3836d /llvm/lib/AsmParser/LLParser.h
parent37cd4d0f42c31cc0c933069e528e65deaeb94477 (diff)
downloadbcm5719-llvm-4e4aa7053503a00c29fadaec82e2f399bc9da492.tar.gz
bcm5719-llvm-4e4aa7053503a00c29fadaec82e2f399bc9da492.zip
IR: Assembly and bitcode for GenericDebugNode
llvm-svn: 228041
Diffstat (limited to 'llvm/lib/AsmParser/LLParser.h')
-rw-r--r--llvm/lib/AsmParser/LLParser.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/llvm/lib/AsmParser/LLParser.h b/llvm/lib/AsmParser/LLParser.h
index 235e2642ef2..6e410d05cd2 100644
--- a/llvm/lib/AsmParser/LLParser.h
+++ b/llvm/lib/AsmParser/LLParser.h
@@ -88,10 +88,11 @@ namespace llvm {
void assign(FieldTy Val) {
Seen = true;
- this->Val = Val;
+ this->Val = std::move(Val);
}
- explicit MDFieldImpl(FieldTy Default) : Val(Default), Seen(false) {}
+ explicit MDFieldImpl(FieldTy Default)
+ : Val(std::move(Default)), Seen(false) {}
};
template <class NumTy> struct MDUnsignedField : public MDFieldImpl<NumTy> {
typedef typename MDUnsignedField::ImplTy ImplTy;
@@ -104,6 +105,12 @@ namespace llvm {
struct MDField : public MDFieldImpl<Metadata *> {
MDField() : ImplTy(nullptr) {}
};
+ struct MDStringField : public MDFieldImpl<std::string> {
+ MDStringField() : ImplTy(std::string()) {}
+ };
+ struct MDFieldList : public MDFieldImpl<SmallVector<Metadata *, 4>> {
+ MDFieldList() : ImplTy(SmallVector<Metadata *, 4>()) {}
+ };
class LLParser {
public:
@@ -421,6 +428,8 @@ namespace llvm {
bool ParseMDField(LocTy Loc, StringRef Name,
MDUnsignedField<uint32_t> &Result);
bool ParseMDField(LocTy Loc, StringRef Name, MDField &Result);
+ bool ParseMDField(LocTy Loc, StringRef Name, MDStringField &Result);
+ bool ParseMDField(LocTy Loc, StringRef Name, MDFieldList &Result);
template <class FieldTy> bool ParseMDField(StringRef Name, FieldTy &Result);
template <class ParserTy>
bool ParseMDFieldsImplBody(ParserTy parseField);
@@ -428,6 +437,7 @@ namespace llvm {
bool ParseMDFieldsImpl(ParserTy parseField, LocTy &ClosingLoc);
bool ParseSpecializedMDNode(MDNode *&N, bool IsDistinct = false);
bool ParseMDLocation(MDNode *&Result, bool IsDistinct);
+ bool ParseGenericDebugNode(MDNode *&Result, bool IsDistinct);
// Function Parsing.
struct ArgInfo {
OpenPOWER on IntegriCloud