diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2017-04-20 19:31:52 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-04-20 23:57:21 +0000 |
commit | cb67096b61f699b047fe8635984db1ac708a7b99 (patch) | |
tree | 3a8bda0962ad77d0d9ccb1d89c15f70578a7fe78 /src/sksl/SkSLParser.cpp | |
parent | e79b473714866682dea85b66c005c5bb2ff6a397 (diff) |
Improved skslc optimizer, particularly around vectors.
BUG=skia:
Change-Id: Idb364d9198f2ff84aad1eb68e236fb45ec1c86b7
Reviewed-on: https://skia-review.googlesource.com/8000
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Diffstat (limited to 'src/sksl/SkSLParser.cpp')
-rw-r--r-- | src/sksl/SkSLParser.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp index 0f2b943a9d..ae9d990d86 100644 --- a/src/sksl/SkSLParser.cpp +++ b/src/sksl/SkSLParser.cpp @@ -309,7 +309,7 @@ std::unique_ptr<ASTDeclaration> Parser::declaration() { if (!this->expect(Token::IDENTIFIER, "an identifier", &name)) { return nullptr; } - if (!modifiers.fFlags && this->peek().fKind == Token::LPAREN) { + if (this->peek().fKind == Token::LPAREN) { this->nextToken(); std::vector<std::unique_ptr<ASTParameter>> parameters; while (this->peek().fKind != Token::RPAREN) { @@ -334,7 +334,9 @@ std::unique_ptr<ASTDeclaration> Parser::declaration() { return nullptr; } } - return std::unique_ptr<ASTDeclaration>(new ASTFunction(name.fPosition, std::move(type), + return std::unique_ptr<ASTDeclaration>(new ASTFunction(name.fPosition, + modifiers, + std::move(type), std::move(name.fText), std::move(parameters), std::move(body))); @@ -721,6 +723,10 @@ Modifiers Parser::modifiers() { this->nextToken(); flags |= Modifiers::kRestrict_Flag; break; + case Token::HASSIDEEFFECTS: + this->nextToken(); + flags |= Modifiers::kHasSideEffects_Flag; + break; default: return Modifiers(layout, flags); } |