diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-02-08 06:32:06 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-02-08 06:32:06 +0000 |
commit | b32b0411e6608c0dbe66648ea64873dce1bb369d (patch) | |
tree | 43409560a713125869afebcc178e484b28e3138d /llvm/lib/AsmParser/LLParser.h | |
parent | 66165c8f961662a73483cd53418a24e6c32667a2 (diff) | |
download | bcm5719-llvm-b32b0411e6608c0dbe66648ea64873dce1bb369d.tar.gz bcm5719-llvm-b32b0411e6608c0dbe66648ea64873dce1bb369d.zip |
Parse the attribute group reference on a function.
Attribute references are of this form:
define void @foo() #0 #1 #2 { ... }
Parse them for function attributes. If there's more than one reference, then
they are merged together.
llvm-svn: 174697
Diffstat (limited to 'llvm/lib/AsmParser/LLParser.h')
-rw-r--r-- | llvm/lib/AsmParser/LLParser.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/AsmParser/LLParser.h b/llvm/lib/AsmParser/LLParser.h index 3cc2a8d7e7b..42cdbd51227 100644 --- a/llvm/lib/AsmParser/LLParser.h +++ b/llvm/lib/AsmParser/LLParser.h @@ -126,7 +126,8 @@ namespace llvm { ForwardRefBlockAddresses; // Attribute builder reference information. - std::map<unsigned, AttrBuilder> ForwardRefAttrBuilder; + std::map<Value*, std::vector<unsigned> > ForwardRefAttrGroups; + std::map<unsigned, AttrBuilder> NumberedAttrBuilders; public: LLParser(MemoryBuffer *F, SourceMgr &SM, SMDiagnostic &Err, Module *m) : @@ -239,7 +240,9 @@ namespace llvm { bool ParseMDNodeID(MDNode *&Result); bool ParseMDNodeID(MDNode *&Result, unsigned &SlotNo); bool ParseUnnamedAttrGrp(); - bool ParseFnAttributeValuePairs(AttrBuilder &B, bool inAttrGrp); + bool ParseFnAttributeValuePairs(AttrBuilder &B, + std::vector<unsigned> &FwdRefAttrGrps, + bool inAttrGrp); // Type Parsing. bool ParseType(Type *&Result, bool AllowVoid = false); |