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

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

Issue 1321993004: Vector ICs: ObjectLiteral refactoring for Oracle feedback (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: ObjectLiteral refactorin. Created 5 years, 3 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
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/ast.h" 8 #include "src/ast.h"
9 #include "src/compiler/js-graph.h" 9 #include "src/compiler/js-graph.h"
10 #include "src/compiler/liveness-analyzer.h" 10 #include "src/compiler/liveness-analyzer.h"
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 // other dependencies tracked by the environment might be mutated though. 246 // other dependencies tracked by the environment might be mutated though.
247 247
248 // Builder to create a receiver check for sloppy mode. 248 // Builder to create a receiver check for sloppy mode.
249 Node* BuildPatchReceiverToGlobalProxy(Node* receiver); 249 Node* BuildPatchReceiverToGlobalProxy(Node* receiver);
250 250
251 // Builders to create local function, script and block contexts. 251 // Builders to create local function, script and block contexts.
252 Node* BuildLocalFunctionContext(Node* context); 252 Node* BuildLocalFunctionContext(Node* context);
253 Node* BuildLocalScriptContext(Scope* scope); 253 Node* BuildLocalScriptContext(Scope* scope);
254 Node* BuildLocalBlockContext(Scope* scope); 254 Node* BuildLocalBlockContext(Scope* scope);
255 255
256 void BuildAccessor(Node* home_object, ObjectLiteralProperty* property);
Michael Starzinger 2015/09/07 08:31:13 nit: After addressing the comment about naming, th
mvstanton 2015/09/07 13:36:09 Done.
256 // Builder to create an arguments object if it is used. 257 // Builder to create an arguments object if it is used.
257 Node* BuildArgumentsObject(Variable* arguments); 258 Node* BuildArgumentsObject(Variable* arguments);
258 259
259 // Builder that assigns to the {.this_function} internal variable if needed. 260 // Builder that assigns to the {.this_function} internal variable if needed.
260 Node* BuildThisFunctionVariable(Variable* this_function_var); 261 Node* BuildThisFunctionVariable(Variable* this_function_var);
261 262
262 // Builder that assigns to the {new.target} internal variable if needed. 263 // Builder that assigns to the {new.target} internal variable if needed.
263 Node* BuildNewTargetVariable(Variable* new_target_var); 264 Node* BuildNewTargetVariable(Variable* new_target_var);
264 265
265 // Builders for variable load and assignment. 266 // Builders for variable load and assignment.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 Node* BuildLoadExternal(ExternalReference ref, MachineType type); 320 Node* BuildLoadExternal(ExternalReference ref, MachineType type);
320 Node* BuildStoreExternal(ExternalReference ref, MachineType type, Node* val); 321 Node* BuildStoreExternal(ExternalReference ref, MachineType type, Node* val);
321 322
322 // Builders for automatic type conversion. 323 // Builders for automatic type conversion.
323 Node* BuildToBoolean(Node* input); 324 Node* BuildToBoolean(Node* input);
324 Node* BuildToName(Node* input, BailoutId bailout_id); 325 Node* BuildToName(Node* input, BailoutId bailout_id);
325 Node* BuildToObject(Node* input, BailoutId bailout_id); 326 Node* BuildToObject(Node* input, BailoutId bailout_id);
326 327
327 // Builder for adding the [[HomeObject]] to a value if the value came from a 328 // Builder for adding the [[HomeObject]] to a value if the value came from a
328 // function literal and needs a home object. Do nothing otherwise. 329 // function literal and needs a home object. Do nothing otherwise.
329 Node* BuildSetHomeObject(Node* value, Node* home_object, Expression* expr, 330 Node* BuildSetHomeObject(Node* value, Node* home_object,
330 const VectorSlotPair& feedback); 331 ObjectLiteralProperty* property,
332 int slot_number = 0);
331 333
332 // Builders for error reporting at runtime. 334 // Builders for error reporting at runtime.
333 Node* BuildThrowError(Node* exception, BailoutId bailout_id); 335 Node* BuildThrowError(Node* exception, BailoutId bailout_id);
334 Node* BuildThrowReferenceError(Variable* var, BailoutId bailout_id); 336 Node* BuildThrowReferenceError(Variable* var, BailoutId bailout_id);
335 Node* BuildThrowConstAssignError(BailoutId bailout_id); 337 Node* BuildThrowConstAssignError(BailoutId bailout_id);
336 Node* BuildThrowStaticPrototypeError(BailoutId bailout_id); 338 Node* BuildThrowStaticPrototypeError(BailoutId bailout_id);
337 Node* BuildThrowUnsupportedSuperError(BailoutId bailout_id); 339 Node* BuildThrowUnsupportedSuperError(BailoutId bailout_id);
338 340
339 // Builders for dynamic hole-checks at runtime. 341 // Builders for dynamic hole-checks at runtime.
340 Node* BuildHoleCheckSilent(Node* value, Node* for_hole, Node* not_hole); 342 Node* BuildHoleCheckSilent(Node* value, Node* for_hole, Node* not_hole);
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 553
552 // Prepare environment to be used as loop header. 554 // Prepare environment to be used as loop header.
553 void PrepareForLoop(BitVector* assigned, bool is_osr = false); 555 void PrepareForLoop(BitVector* assigned, bool is_osr = false);
554 }; 556 };
555 557
556 } // namespace compiler 558 } // namespace compiler
557 } // namespace internal 559 } // namespace internal
558 } // namespace v8 560 } // namespace v8
559 561
560 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ 562 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698