OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_COMPILER_AST_GRAPH_BUILDER_H_ | 5 #ifndef V8_COMPILER_AST_GRAPH_BUILDER_H_ |
6 #define V8_COMPILER_AST_GRAPH_BUILDER_H_ | 6 #define V8_COMPILER_AST_GRAPH_BUILDER_H_ |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/ast.h" | 10 #include "src/ast.h" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 Node* BuildLocalFunctionContext(Node* context, Node* closure); | 75 Node* BuildLocalFunctionContext(Node* context, Node* closure); |
76 | 76 |
77 // Builder to create an arguments object if it is used. | 77 // Builder to create an arguments object if it is used. |
78 Node* BuildArgumentsObject(Variable* arguments); | 78 Node* BuildArgumentsObject(Variable* arguments); |
79 | 79 |
80 // Builders for variable load and assignment. | 80 // Builders for variable load and assignment. |
81 Node* BuildVariableAssignment(Variable* var, Node* value, Token::Value op, | 81 Node* BuildVariableAssignment(Variable* var, Node* value, Token::Value op, |
82 BailoutId bailout_id); | 82 BailoutId bailout_id); |
83 Node* BuildVariableDelete(Variable* var, BailoutId bailout_id, | 83 Node* BuildVariableDelete(Variable* var, BailoutId bailout_id, |
84 OutputFrameStateCombine state_combine); | 84 OutputFrameStateCombine state_combine); |
85 Node* BuildVariableLoad(Variable* proxy, BailoutId bailout_id, | 85 Node* BuildVariableLoad(Variable* var, BailoutId bailout_id, |
86 const VectorSlotPair& feedback, | 86 const VectorSlotPair& feedback, |
87 ContextualMode mode = CONTEXTUAL); | 87 ContextualMode mode = CONTEXTUAL); |
88 | 88 |
89 // Builders for accessing the function context. | 89 // Builders for accessing the function context. |
90 Node* BuildLoadBuiltinsObject(); | 90 Node* BuildLoadBuiltinsObject(); |
91 Node* BuildLoadGlobalObject(); | 91 Node* BuildLoadGlobalObject(); |
92 Node* BuildLoadClosure(); | 92 Node* BuildLoadClosure(); |
93 Node* BuildLoadObjectField(Node* object, int offset); | 93 Node* BuildLoadObjectField(Node* object, int offset); |
94 | 94 |
95 // Builders for automatic type conversion. | 95 // Builders for automatic type conversion. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 CompilationInfo* info() const { return info_; } | 138 CompilationInfo* info() const { return info_; } |
139 inline StrictMode strict_mode() const; | 139 inline StrictMode strict_mode() const; |
140 JSGraph* jsgraph() { return jsgraph_; } | 140 JSGraph* jsgraph() { return jsgraph_; } |
141 JSOperatorBuilder* javascript() { return jsgraph_->javascript(); } | 141 JSOperatorBuilder* javascript() { return jsgraph_->javascript(); } |
142 ZoneList<Handle<Object> >* globals() { return &globals_; } | 142 ZoneList<Handle<Object> >* globals() { return &globals_; } |
143 | 143 |
144 // Current scope during visitation. | 144 // Current scope during visitation. |
145 inline Scope* current_scope() const; | 145 inline Scope* current_scope() const; |
146 | 146 |
147 // Named and keyed loads require a VectorSlotPair for successful lowering. | 147 // Named and keyed loads require a VectorSlotPair for successful lowering. |
148 VectorSlotPair CreateVectorSlotPair(int slot) const; | 148 VectorSlotPair CreateVectorSlotPair(FeedbackVectorSlot slot) const; |
149 | 149 |
150 // Process arguments to a call by popping {arity} elements off the operand | 150 // Process arguments to a call by popping {arity} elements off the operand |
151 // stack and build a call node using the given call operator. | 151 // stack and build a call node using the given call operator. |
152 Node* ProcessArguments(const Operator* op, int arity); | 152 Node* ProcessArguments(const Operator* op, int arity); |
153 | 153 |
154 // Visit statements. | 154 // Visit statements. |
155 void VisitIfNotNull(Statement* stmt); | 155 void VisitIfNotNull(Statement* stmt); |
156 | 156 |
157 // Visit expressions. | 157 // Visit expressions. |
158 void VisitForTest(Expression* expr); | 158 void VisitForTest(Expression* expr); |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 }; | 432 }; |
433 | 433 |
434 Scope* AstGraphBuilder::current_scope() const { | 434 Scope* AstGraphBuilder::current_scope() const { |
435 return execution_context_->scope(); | 435 return execution_context_->scope(); |
436 } | 436 } |
437 } | 437 } |
438 } | 438 } |
439 } // namespace v8::internal::compiler | 439 } // namespace v8::internal::compiler |
440 | 440 |
441 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ | 441 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ |
OLD | NEW |