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

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

Issue 633423002: Teach TurboFan to call vector-based ICs. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed nits. 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/code-factory.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* var, BailoutId bailout_id, 85 Node* BuildVariableLoad(Variable* proxy, BailoutId bailout_id,
86 const VectorSlotPair& feedback,
86 ContextualMode mode = CONTEXTUAL); 87 ContextualMode mode = CONTEXTUAL);
87 88
88 // Builders for accessing the function context. 89 // Builders for accessing the function context.
89 Node* BuildLoadBuiltinsObject(); 90 Node* BuildLoadBuiltinsObject();
90 Node* BuildLoadGlobalObject(); 91 Node* BuildLoadGlobalObject();
91 Node* BuildLoadClosure(); 92 Node* BuildLoadClosure();
92 Node* BuildLoadObjectField(Node* object, int offset); 93 Node* BuildLoadObjectField(Node* object, int offset);
93 94
94 // Builders for automatic type conversion. 95 // Builders for automatic type conversion.
95 Node* BuildToBoolean(Node* value); 96 Node* BuildToBoolean(Node* value);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 137
137 CompilationInfo* info() const { return info_; } 138 CompilationInfo* info() const { return info_; }
138 inline StrictMode strict_mode() const; 139 inline StrictMode strict_mode() const;
139 JSGraph* jsgraph() { return jsgraph_; } 140 JSGraph* jsgraph() { return jsgraph_; }
140 JSOperatorBuilder* javascript() { return jsgraph_->javascript(); } 141 JSOperatorBuilder* javascript() { return jsgraph_->javascript(); }
141 ZoneList<Handle<Object> >* globals() { return &globals_; } 142 ZoneList<Handle<Object> >* globals() { return &globals_; }
142 143
143 // Current scope during visitation. 144 // Current scope during visitation.
144 inline Scope* current_scope() const; 145 inline Scope* current_scope() const;
145 146
147 // Named and keyed loads require a VectorSlotPair for successful lowering.
148 VectorSlotPair CreateVectorSlotPair(int slot) const;
149
146 // 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
147 // stack and build a call node using the given call operator. 151 // stack and build a call node using the given call operator.
148 Node* ProcessArguments(const Operator* op, int arity); 152 Node* ProcessArguments(const Operator* op, int arity);
149 153
150 // Visit statements. 154 // Visit statements.
151 void VisitIfNotNull(Statement* stmt); 155 void VisitIfNotNull(Statement* stmt);
152 156
153 // Visit expressions. 157 // Visit expressions.
154 void VisitForTest(Expression* expr); 158 void VisitForTest(Expression* expr);
155 void VisitForEffect(Expression* expr); 159 void VisitForEffect(Expression* expr);
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 }; 432 };
429 433
430 Scope* AstGraphBuilder::current_scope() const { 434 Scope* AstGraphBuilder::current_scope() const {
431 return execution_context_->scope(); 435 return execution_context_->scope();
432 } 436 }
433 } 437 }
434 } 438 }
435 } // namespace v8::internal::compiler 439 } // namespace v8::internal::compiler
436 440
437 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ 441 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_
OLDNEW
« no previous file with comments | « src/code-factory.cc ('k') | src/compiler/ast-graph-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698