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/ast/ast.h" | 8 #include "src/ast/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 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
461 // The abstract execution environment for generated code consists of | 461 // The abstract execution environment for generated code consists of |
462 // parameter variables, local variables and the operand stack. The | 462 // parameter variables, local variables and the operand stack. The |
463 // environment will perform proper SSA-renaming of all tracked nodes | 463 // environment will perform proper SSA-renaming of all tracked nodes |
464 // at split and merge points in the control flow. Internally all the | 464 // at split and merge points in the control flow. Internally all the |
465 // values are stored in one list using the following layout: | 465 // values are stored in one list using the following layout: |
466 // | 466 // |
467 // [parameters (+receiver)] [locals] [operand stack] | 467 // [parameters (+receiver)] [locals] [operand stack] |
468 // | 468 // |
469 class AstGraphBuilder::Environment : public ZoneObject { | 469 class AstGraphBuilder::Environment : public ZoneObject { |
470 public: | 470 public: |
471 Environment(AstGraphBuilder* builder, Scope* scope, Node* control_dependency); | 471 Environment(AstGraphBuilder* builder, DeclarationScope* scope, |
| 472 Node* control_dependency); |
472 | 473 |
473 int parameters_count() const { return parameters_count_; } | 474 int parameters_count() const { return parameters_count_; } |
474 int locals_count() const { return locals_count_; } | 475 int locals_count() const { return locals_count_; } |
475 int context_chain_length() { return static_cast<int>(contexts_.size()); } | 476 int context_chain_length() { return static_cast<int>(contexts_.size()); } |
476 int stack_height() { | 477 int stack_height() { |
477 return static_cast<int>(values()->size()) - parameters_count_ - | 478 return static_cast<int>(values()->size()) - parameters_count_ - |
478 locals_count_; | 479 locals_count_; |
479 } | 480 } |
480 | 481 |
481 // Operations on parameter or local variables. | 482 // Operations on parameter or local variables. |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
604 | 605 |
605 // Prepare environment to be used as loop header. | 606 // Prepare environment to be used as loop header. |
606 void PrepareForLoop(BitVector* assigned, bool is_osr = false); | 607 void PrepareForLoop(BitVector* assigned, bool is_osr = false); |
607 }; | 608 }; |
608 | 609 |
609 } // namespace compiler | 610 } // namespace compiler |
610 } // namespace internal | 611 } // namespace internal |
611 } // namespace v8 | 612 } // namespace v8 |
612 | 613 |
613 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ | 614 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ |
OLD | NEW |