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

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

Issue 983153002: [turbofan] Add an extra frame state for deoptimization before binary op. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Tweak Created 5 years, 9 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 | « no previous file | 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/ast.h" 8 #include "src/ast.h"
9 #include "src/compiler/js-graph.h" 9 #include "src/compiler/js-graph.h"
10 10
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 BailoutId bailout_id); 311 BailoutId bailout_id);
312 void VisitForInBody(ForInStatement* stmt); 312 void VisitForInBody(ForInStatement* stmt);
313 313
314 // Dispatched from VisitClassLiteral. 314 // Dispatched from VisitClassLiteral.
315 void VisitClassLiteralContents(ClassLiteral* expr); 315 void VisitClassLiteralContents(ClassLiteral* expr);
316 316
317 // Builds deoptimization for a given node. 317 // Builds deoptimization for a given node.
318 void PrepareFrameState( 318 void PrepareFrameState(
319 Node* node, BailoutId ast_id, 319 Node* node, BailoutId ast_id,
320 OutputFrameStateCombine combine = OutputFrameStateCombine::Ignore()); 320 OutputFrameStateCombine combine = OutputFrameStateCombine::Ignore());
321 void PrepareFrameStateAfterAndBefore(Node* node, BailoutId ast_id,
322 OutputFrameStateCombine combine,
323 Node* frame_state_before);
321 324
322 BitVector* GetVariablesAssignedInLoop(IterationStatement* stmt); 325 BitVector* GetVariablesAssignedInLoop(IterationStatement* stmt);
323 326
324 DEFINE_AST_VISITOR_SUBCLASS_MEMBERS(); 327 DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
325 DISALLOW_COPY_AND_ASSIGN(AstGraphBuilder); 328 DISALLOW_COPY_AND_ASSIGN(AstGraphBuilder);
326 }; 329 };
327 330
328 331
329 // The abstract execution environment for generated code consists of 332 // The abstract execution environment for generated code consists of
330 // parameter variables, local variables and the operand stack. The 333 // parameter variables, local variables and the operand stack. The
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 values()->erase(values()->end() - depth, values()->end()); 404 values()->erase(values()->end() - depth, values()->end());
402 } 405 }
403 void Trim(int trim_to_height) { 406 void Trim(int trim_to_height) {
404 int depth = stack_height() - trim_to_height; 407 int depth = stack_height() - trim_to_height;
405 DCHECK(depth >= 0 && depth <= stack_height()); 408 DCHECK(depth >= 0 && depth <= stack_height());
406 values()->erase(values()->end() - depth, values()->end()); 409 values()->erase(values()->end() - depth, values()->end());
407 } 410 }
408 411
409 // Preserve a checkpoint of the environment for the IR graph. Any 412 // Preserve a checkpoint of the environment for the IR graph. Any
410 // further mutation of the environment will not affect checkpoints. 413 // further mutation of the environment will not affect checkpoints.
411 Node* Checkpoint(BailoutId ast_id, OutputFrameStateCombine combine); 414 Node* Checkpoint(BailoutId ast_id, OutputFrameStateCombine combine =
415 OutputFrameStateCombine::Ignore());
412 416
413 // Control dependency tracked by this environment. 417 // Control dependency tracked by this environment.
414 Node* GetControlDependency() { return control_dependency_; } 418 Node* GetControlDependency() { return control_dependency_; }
415 void UpdateControlDependency(Node* dependency) { 419 void UpdateControlDependency(Node* dependency) {
416 control_dependency_ = dependency; 420 control_dependency_ = dependency;
417 } 421 }
418 422
419 // Effect dependency tracked by this environment. 423 // Effect dependency tracked by this environment.
420 Node* GetEffectDependency() { return effect_dependency_; } 424 Node* GetEffectDependency() { return effect_dependency_; }
421 void UpdateEffectDependency(Node* dependency) { 425 void UpdateEffectDependency(Node* dependency) {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 479
476 // Prepare environment to be used as loop header. 480 // Prepare environment to be used as loop header.
477 void PrepareForLoop(BitVector* assigned, bool is_osr = false); 481 void PrepareForLoop(BitVector* assigned, bool is_osr = false);
478 }; 482 };
479 483
480 } // namespace compiler 484 } // namespace compiler
481 } // namespace internal 485 } // namespace internal
482 } // namespace v8 486 } // namespace v8
483 487
484 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ 488 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_
OLDNEW
« no previous file with comments | « no previous file | src/compiler/ast-graph-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698