Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(242)

Side by Side Diff: src/sksl/SkSLIRGenerator.h

Issue 2143323003: Revert of SkSL performance improvements (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/sksl/SkSLCompiler.cpp ('k') | src/sksl/SkSLIRGenerator.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 Google Inc. 2 * Copyright 2016 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SKSL_IRGENERATOR 8 #ifndef SKSL_IRGENERATOR
9 #define SKSL_IRGENERATOR 9 #define SKSL_IRGENERATOR
10 10
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 std::unique_ptr<VarDeclaration> convertVarDeclaration(const ASTVarDeclaratio n& decl, 58 std::unique_ptr<VarDeclaration> convertVarDeclaration(const ASTVarDeclaratio n& decl,
59 Variable::Storage stor age); 59 Variable::Storage stor age);
60 std::unique_ptr<FunctionDefinition> convertFunction(const ASTFunction& f); 60 std::unique_ptr<FunctionDefinition> convertFunction(const ASTFunction& f);
61 std::unique_ptr<Statement> convertStatement(const ASTStatement& statement); 61 std::unique_ptr<Statement> convertStatement(const ASTStatement& statement);
62 std::unique_ptr<Expression> convertExpression(const ASTExpression& expressio n); 62 std::unique_ptr<Expression> convertExpression(const ASTExpression& expressio n);
63 63
64 private: 64 private:
65 void pushSymbolTable(); 65 void pushSymbolTable();
66 void popSymbolTable(); 66 void popSymbolTable();
67 67
68 const Type* convertType(const ASTType& type); 68 std::shared_ptr<Type> convertType(const ASTType& type);
69 std::unique_ptr<Expression> call(Position position, 69 std::unique_ptr<Expression> call(Position position,
70 const FunctionDeclaration& function, 70 std::shared_ptr<FunctionDeclaration> functi on,
71 std::vector<std::unique_ptr<Expression>> ar guments); 71 std::vector<std::unique_ptr<Expression>> ar guments);
72 bool determineCallCost(const FunctionDeclaration& function, 72 bool determineCallCost(std::shared_ptr<FunctionDeclaration> function,
73 const std::vector<std::unique_ptr<Expression>>& argum ents, 73 const std::vector<std::unique_ptr<Expression>>& argum ents,
74 int* outCost); 74 int* outCost);
75 std::unique_ptr<Expression> call(Position position, std::unique_ptr<Expressi on> function, 75 std::unique_ptr<Expression> call(Position position, std::unique_ptr<Expressi on> function,
76 std::vector<std::unique_ptr<Expression>> ar guments); 76 std::vector<std::unique_ptr<Expression>> ar guments);
77 std::unique_ptr<Expression> coerce(std::unique_ptr<Expression> expr, const T ype& type); 77 std::unique_ptr<Expression> coerce(std::unique_ptr<Expression> expr,
78 std::shared_ptr<Type> type);
78 std::unique_ptr<Block> convertBlock(const ASTBlock& block); 79 std::unique_ptr<Block> convertBlock(const ASTBlock& block);
79 std::unique_ptr<Statement> convertBreak(const ASTBreakStatement& b); 80 std::unique_ptr<Statement> convertBreak(const ASTBreakStatement& b);
80 std::unique_ptr<Expression> convertConstructor(Position position, 81 std::unique_ptr<Expression> convertConstructor(Position position,
81 const Type& type, 82 std::shared_ptr<Type> type,
82 std::vector<std::unique_ptr<E xpression>> params); 83 std::vector<std::unique_ptr<E xpression>> params);
83 std::unique_ptr<Statement> convertContinue(const ASTContinueStatement& c); 84 std::unique_ptr<Statement> convertContinue(const ASTContinueStatement& c);
84 std::unique_ptr<Statement> convertDiscard(const ASTDiscardStatement& d); 85 std::unique_ptr<Statement> convertDiscard(const ASTDiscardStatement& d);
85 std::unique_ptr<Statement> convertDo(const ASTDoStatement& d); 86 std::unique_ptr<Statement> convertDo(const ASTDoStatement& d);
86 std::unique_ptr<Expression> convertBinaryExpression(const ASTBinaryExpressio n& expression); 87 std::unique_ptr<Expression> convertBinaryExpression(const ASTBinaryExpressio n& expression);
87 std::unique_ptr<Extension> convertExtension(const ASTExtension& e); 88 std::unique_ptr<Extension> convertExtension(const ASTExtension& e);
88 std::unique_ptr<Statement> convertExpressionStatement(const ASTExpressionSta tement& s); 89 std::unique_ptr<Statement> convertExpressionStatement(const ASTExpressionSta tement& s);
89 std::unique_ptr<Statement> convertFor(const ASTForStatement& f); 90 std::unique_ptr<Statement> convertFor(const ASTForStatement& f);
90 std::unique_ptr<Expression> convertIdentifier(const ASTIdentifier& identifie r); 91 std::unique_ptr<Expression> convertIdentifier(const ASTIdentifier& identifie r);
91 std::unique_ptr<Statement> convertIf(const ASTIfStatement& s); 92 std::unique_ptr<Statement> convertIf(const ASTIfStatement& s);
92 std::unique_ptr<Expression> convertIndex(std::unique_ptr<Expression> base, 93 std::unique_ptr<Expression> convertIndex(std::unique_ptr<Expression> base,
93 const ASTExpression& index); 94 const ASTExpression& index);
94 std::unique_ptr<InterfaceBlock> convertInterfaceBlock(const ASTInterfaceBloc k& s); 95 std::unique_ptr<InterfaceBlock> convertInterfaceBlock(const ASTInterfaceBloc k& s);
95 Modifiers convertModifiers(const ASTModifiers& m); 96 Modifiers convertModifiers(const ASTModifiers& m);
96 std::unique_ptr<Expression> convertPrefixExpression(const ASTPrefixExpressio n& expression); 97 std::unique_ptr<Expression> convertPrefixExpression(const ASTPrefixExpressio n& expression);
97 std::unique_ptr<Statement> convertReturn(const ASTReturnStatement& r); 98 std::unique_ptr<Statement> convertReturn(const ASTReturnStatement& r);
98 std::unique_ptr<Expression> convertSuffixExpression(const ASTSuffixExpressio n& expression); 99 std::unique_ptr<Expression> convertSuffixExpression(const ASTSuffixExpressio n& expression);
99 std::unique_ptr<Expression> convertField(std::unique_ptr<Expression> base, 100 std::unique_ptr<Expression> convertField(std::unique_ptr<Expression> base,
100 const std::string& field); 101 const std::string& field);
101 std::unique_ptr<Expression> convertSwizzle(std::unique_ptr<Expression> base, 102 std::unique_ptr<Expression> convertSwizzle(std::unique_ptr<Expression> base,
102 const std::string& fields); 103 const std::string& fields);
103 std::unique_ptr<Expression> convertTernaryExpression(const ASTTernaryExpress ion& expression); 104 std::unique_ptr<Expression> convertTernaryExpression(const ASTTernaryExpress ion& expression);
104 std::unique_ptr<Statement> convertVarDeclarationStatement(const ASTVarDeclar ationStatement& s); 105 std::unique_ptr<Statement> convertVarDeclarationStatement(const ASTVarDeclar ationStatement& s);
105 std::unique_ptr<Statement> convertWhile(const ASTWhileStatement& w); 106 std::unique_ptr<Statement> convertWhile(const ASTWhileStatement& w);
106 107
107 void checkValid(const Expression& expr); 108 void checkValid(const Expression& expr);
108 void markReadFrom(const Variable& var); 109 void markReadFrom(std::shared_ptr<Variable> var);
109 void markWrittenTo(const Expression& expr); 110 void markWrittenTo(const Expression& expr);
110 111
111 const FunctionDeclaration* fCurrentFunction; 112 std::shared_ptr<FunctionDeclaration> fCurrentFunction;
112 std::shared_ptr<SymbolTable> fSymbolTable; 113 std::shared_ptr<SymbolTable> fSymbolTable;
113 ErrorReporter& fErrors; 114 ErrorReporter& fErrors;
114 115
115 friend class AutoSymbolTable; 116 friend class AutoSymbolTable;
116 friend class Compiler; 117 friend class Compiler;
117 }; 118 };
118 119
119 } 120 }
120 121
121 #endif 122 #endif
OLDNEW
« no previous file with comments | « src/sksl/SkSLCompiler.cpp ('k') | src/sksl/SkSLIRGenerator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698