diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-02-03 21:54:14 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-02-03 21:54:14 +0000 |
commit | 4e4aa7053503a00c29fadaec82e2f399bc9da492 (patch) | |
tree | d96c4bb1895e44a477fa4131e76d73bbbea3836d /llvm/lib/AsmParser/LLParser.h | |
parent | 37cd4d0f42c31cc0c933069e528e65deaeb94477 (diff) | |
download | bcm5719-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.h | 14 |
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 { |