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

Side by Side Diff: src/compiler/ast-graph-builder.h

Issue 641373002: Introduce FeedbackVectorSlot type - better than int. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Ports. Created 6 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « src/ast.cc ('k') | src/compiler/ast-graph-builder.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « src/ast.cc ('k') | src/compiler/ast-graph-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698