| 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 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 // Builder that assigns to the {.this_function} internal variable if needed. | 276 // Builder that assigns to the {.this_function} internal variable if needed. |
| 277 Node* BuildThisFunctionVariable(Variable* this_function_var); | 277 Node* BuildThisFunctionVariable(Variable* this_function_var); |
| 278 | 278 |
| 279 // Builder that assigns to the {new.target} internal variable if needed. | 279 // Builder that assigns to the {new.target} internal variable if needed. |
| 280 Node* BuildNewTargetVariable(Variable* new_target_var); | 280 Node* BuildNewTargetVariable(Variable* new_target_var); |
| 281 | 281 |
| 282 // Builders for variable load and assignment. | 282 // Builders for variable load and assignment. |
| 283 Node* BuildVariableAssignment(Variable* variable, Node* value, | 283 Node* BuildVariableAssignment(Variable* variable, Node* value, |
| 284 Token::Value op, const VectorSlotPair& slot, | 284 Token::Value op, const VectorSlotPair& slot, |
| 285 BailoutId bailout_id, | 285 BailoutId bailout_id, |
| 286 FrameStateBeforeAndAfter& states, | |
| 287 OutputFrameStateCombine framestate_combine = | 286 OutputFrameStateCombine framestate_combine = |
| 288 OutputFrameStateCombine::Ignore()); | 287 OutputFrameStateCombine::Ignore()); |
| 289 Node* BuildVariableDelete(Variable* variable, BailoutId bailout_id, | 288 Node* BuildVariableDelete(Variable* variable, BailoutId bailout_id, |
| 290 OutputFrameStateCombine framestate_combine); | 289 OutputFrameStateCombine framestate_combine); |
| 291 Node* BuildVariableLoad(Variable* variable, BailoutId bailout_id, | 290 Node* BuildVariableLoad(Variable* variable, BailoutId bailout_id, |
| 292 FrameStateBeforeAndAfter& states, | |
| 293 const VectorSlotPair& feedback, | 291 const VectorSlotPair& feedback, |
| 294 OutputFrameStateCombine framestate_combine, | 292 OutputFrameStateCombine framestate_combine, |
| 295 TypeofMode typeof_mode = NOT_INSIDE_TYPEOF); | 293 TypeofMode typeof_mode = NOT_INSIDE_TYPEOF); |
| 296 | 294 |
| 297 // Builders for property loads and stores. | 295 // Builders for property loads and stores. |
| 298 Node* BuildKeyedLoad(Node* receiver, Node* key, | 296 Node* BuildKeyedLoad(Node* receiver, Node* key, |
| 299 const VectorSlotPair& feedback); | 297 const VectorSlotPair& feedback); |
| 300 Node* BuildNamedLoad(Node* receiver, Handle<Name> name, | 298 Node* BuildNamedLoad(Node* receiver, Handle<Name> name, |
| 301 const VectorSlotPair& feedback); | 299 const VectorSlotPair& feedback); |
| 302 Node* BuildKeyedStore(Node* receiver, Node* key, Node* value, | 300 Node* BuildKeyedStore(Node* receiver, Node* key, Node* value, |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 // that these are optimizations, disabling any of them should still produce | 371 // that these are optimizations, disabling any of them should still produce |
| 374 // correct graphs. | 372 // correct graphs. |
| 375 | 373 |
| 376 // Optimization for variable load from global object. | 374 // Optimization for variable load from global object. |
| 377 Node* TryLoadGlobalConstant(Handle<Name> name); | 375 Node* TryLoadGlobalConstant(Handle<Name> name); |
| 378 | 376 |
| 379 // Optimization for variable load of dynamic lookup slot that is most likely | 377 // Optimization for variable load of dynamic lookup slot that is most likely |
| 380 // to resolve to a global slot or context slot (inferred from scope chain). | 378 // to resolve to a global slot or context slot (inferred from scope chain). |
| 381 Node* TryLoadDynamicVariable(Variable* variable, Handle<String> name, | 379 Node* TryLoadDynamicVariable(Variable* variable, Handle<String> name, |
| 382 BailoutId bailout_id, | 380 BailoutId bailout_id, |
| 383 FrameStateBeforeAndAfter& states, | |
| 384 const VectorSlotPair& feedback, | 381 const VectorSlotPair& feedback, |
| 385 OutputFrameStateCombine combine, | 382 OutputFrameStateCombine combine, |
| 386 TypeofMode typeof_mode); | 383 TypeofMode typeof_mode); |
| 387 | 384 |
| 388 // Optimizations for automatic type conversion. | 385 // Optimizations for automatic type conversion. |
| 389 Node* TryFastToBoolean(Node* input); | 386 Node* TryFastToBoolean(Node* input); |
| 390 Node* TryFastToName(Node* input); | 387 Node* TryFastToName(Node* input); |
| 391 | 388 |
| 392 // =========================================================================== | 389 // =========================================================================== |
| 393 // The following visitation methods all recursively visit a subtree of the | 390 // The following visitation methods all recursively visit a subtree of the |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 598 | 595 |
| 599 // Prepare environment to be used as loop header. | 596 // Prepare environment to be used as loop header. |
| 600 void PrepareForLoop(BitVector* assigned, bool is_osr = false); | 597 void PrepareForLoop(BitVector* assigned, bool is_osr = false); |
| 601 }; | 598 }; |
| 602 | 599 |
| 603 } // namespace compiler | 600 } // namespace compiler |
| 604 } // namespace internal | 601 } // namespace internal |
| 605 } // namespace v8 | 602 } // namespace v8 |
| 606 | 603 |
| 607 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ | 604 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ |
| OLD | NEW |