summaryrefslogtreecommitdiffstats
path: root/llvm/lib/AsmParser/LLParser.h
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-02-08 06:32:06 +0000
committerBill Wendling <isanbard@gmail.com>2013-02-08 06:32:06 +0000
commitb32b0411e6608c0dbe66648ea64873dce1bb369d (patch)
tree43409560a713125869afebcc178e484b28e3138d /llvm/lib/AsmParser/LLParser.h
parent66165c8f961662a73483cd53418a24e6c32667a2 (diff)
downloadbcm5719-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.h7
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);
OpenPOWER on IntegriCloud