summaryrefslogtreecommitdiffstats
path: root/llvm/lib/AsmParser
diff options
context:
space:
mode:
authorManman Ren <manman.ren@gmail.com>2016-03-29 17:37:21 +0000
committerManman Ren <manman.ren@gmail.com>2016-03-29 17:37:21 +0000
commitf46262e0b7a183c22b9384cd729c5fb0f05e5d38 (patch)
treea4c3cb4390adf67c3341875e7734d38230204150 /llvm/lib/AsmParser
parent6e5c1fed08edf57725b9dc2e5c7ab429d25569a6 (diff)
downloadbcm5719-llvm-f46262e0b7a183c22b9384cd729c5fb0f05e5d38.tar.gz
bcm5719-llvm-f46262e0b7a183c22b9384cd729c5fb0f05e5d38.zip
Swift Calling Convention: add swiftself attribute.
Differential Revision: http://reviews.llvm.org/D17866 llvm-svn: 264754
Diffstat (limited to 'llvm/lib/AsmParser')
-rw-r--r--llvm/lib/AsmParser/LLLexer.cpp1
-rw-r--r--llvm/lib/AsmParser/LLParser.cpp3
-rw-r--r--llvm/lib/AsmParser/LLToken.h1
3 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/AsmParser/LLLexer.cpp b/llvm/lib/AsmParser/LLLexer.cpp
index e89e03c4e19..d2385130912 100644
--- a/llvm/lib/AsmParser/LLLexer.cpp
+++ b/llvm/lib/AsmParser/LLLexer.cpp
@@ -647,6 +647,7 @@ lltok::Kind LLLexer::LexIdentifier() {
KEYWORD(sanitize_address);
KEYWORD(sanitize_thread);
KEYWORD(sanitize_memory);
+ KEYWORD(swiftself);
KEYWORD(uwtable);
KEYWORD(zeroext);
diff --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp
index 323bb5430c4..76bd99e9b66 100644
--- a/llvm/lib/AsmParser/LLParser.cpp
+++ b/llvm/lib/AsmParser/LLParser.cpp
@@ -1071,6 +1071,7 @@ bool LLParser::ParseFnAttributeValuePairs(AttrBuilder &B,
case lltok::kw_nonnull:
case lltok::kw_returned:
case lltok::kw_sret:
+ case lltok::kw_swiftself:
HaveError |=
Error(Lex.getLoc(),
"invalid use of parameter-only attribute on a function");
@@ -1344,6 +1345,7 @@ bool LLParser::ParseOptionalParamAttrs(AttrBuilder &B) {
case lltok::kw_returned: B.addAttribute(Attribute::Returned); break;
case lltok::kw_signext: B.addAttribute(Attribute::SExt); break;
case lltok::kw_sret: B.addAttribute(Attribute::StructRet); break;
+ case lltok::kw_swiftself: B.addAttribute(Attribute::SwiftSelf); break;
case lltok::kw_zeroext: B.addAttribute(Attribute::ZExt); break;
case lltok::kw_alignstack:
@@ -1431,6 +1433,7 @@ bool LLParser::ParseOptionalReturnAttrs(AttrBuilder &B) {
case lltok::kw_nocapture:
case lltok::kw_returned:
case lltok::kw_sret:
+ case lltok::kw_swiftself:
HaveError |= Error(Lex.getLoc(), "invalid use of parameter-only attribute");
break;
diff --git a/llvm/lib/AsmParser/LLToken.h b/llvm/lib/AsmParser/LLToken.h
index 49b663ecc64..f06b5b81a13 100644
--- a/llvm/lib/AsmParser/LLToken.h
+++ b/llvm/lib/AsmParser/LLToken.h
@@ -151,6 +151,7 @@ namespace lltok {
kw_sret,
kw_sanitize_thread,
kw_sanitize_memory,
+ kw_swiftself,
kw_uwtable,
kw_zeroext,
OpenPOWER on IntegriCloud