| 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.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 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 | 356 |
| 357 // =========================================================================== | 357 // =========================================================================== |
| 358 // The following build methods have the same contract as the above ones, but | 358 // The following build methods have the same contract as the above ones, but |
| 359 // they can also return {NULL} to indicate that no fragment was built. Note | 359 // they can also return {NULL} to indicate that no fragment was built. Note |
| 360 // that these are optimizations, disabling any of them should still produce | 360 // that these are optimizations, disabling any of them should still produce |
| 361 // correct graphs. | 361 // correct graphs. |
| 362 | 362 |
| 363 // Optimization for variable load from global object. | 363 // Optimization for variable load from global object. |
| 364 Node* TryLoadGlobalConstant(Handle<Name> name); | 364 Node* TryLoadGlobalConstant(Handle<Name> name); |
| 365 | 365 |
| 366 // Optimization for variable load of dynamic lookup slot that is most likely |
| 367 // to resolve to a global slot or context slot (inferred from scope chain). |
| 368 Node* TryLoadDynamicVariable(Variable* variable, Handle<String> name, |
| 369 BailoutId bailout_id, |
| 370 FrameStateBeforeAndAfter& states, |
| 371 const VectorSlotPair& feedback, |
| 372 OutputFrameStateCombine combine, |
| 373 TypeofMode typeof_mode); |
| 374 |
| 366 // Optimizations for automatic type conversion. | 375 // Optimizations for automatic type conversion. |
| 367 Node* TryFastToBoolean(Node* input); | 376 Node* TryFastToBoolean(Node* input); |
| 368 Node* TryFastToName(Node* input); | 377 Node* TryFastToName(Node* input); |
| 369 | 378 |
| 370 // =========================================================================== | 379 // =========================================================================== |
| 371 // The following visitation methods all recursively visit a subtree of the | 380 // The following visitation methods all recursively visit a subtree of the |
| 372 // underlying AST and extent the graph. The operand stack is mutated in a way | 381 // underlying AST and extent the graph. The operand stack is mutated in a way |
| 373 // consistent with other compilers: | 382 // consistent with other compilers: |
| 374 // - Expressions pop operands and push result, depending on {AstContext}. | 383 // - Expressions pop operands and push result, depending on {AstContext}. |
| 375 // - Statements keep the operand stack balanced. | 384 // - Statements keep the operand stack balanced. |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 566 | 575 |
| 567 // Prepare environment to be used as loop header. | 576 // Prepare environment to be used as loop header. |
| 568 void PrepareForLoop(BitVector* assigned, bool is_osr = false); | 577 void PrepareForLoop(BitVector* assigned, bool is_osr = false); |
| 569 }; | 578 }; |
| 570 | 579 |
| 571 } // namespace compiler | 580 } // namespace compiler |
| 572 } // namespace internal | 581 } // namespace internal |
| 573 } // namespace v8 | 582 } // namespace v8 |
| 574 | 583 |
| 575 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ | 584 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ |
| OLD | NEW |