OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_FLOW_GRAPH_COMPILER_H_ | 5 #ifndef VM_FLOW_GRAPH_COMPILER_H_ |
6 #define VM_FLOW_GRAPH_COMPILER_H_ | 6 #define VM_FLOW_GRAPH_COMPILER_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
10 #include "vm/code_descriptors.h" | 10 #include "vm/code_descriptors.h" |
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
616 return code_source_map_builder_; | 616 return code_source_map_builder_; |
617 } | 617 } |
618 | 618 |
619 void BeginCodeSourceRange(); | 619 void BeginCodeSourceRange(); |
620 bool EndCodeSourceRange(TokenPosition token_pos); | 620 bool EndCodeSourceRange(TokenPosition token_pos); |
621 | 621 |
622 #if defined(TARGET_ARCH_DBC) | 622 #if defined(TARGET_ARCH_DBC) |
623 void RecordAfterCall(Instruction* instr); | 623 void RecordAfterCall(Instruction* instr); |
624 #endif | 624 #endif |
625 | 625 |
| 626 void AddStaticCallTarget(const Function& function); |
| 627 |
626 private: | 628 private: |
627 friend class CheckStackOverflowSlowPath; // For pending_deoptimization_env_. | 629 friend class CheckStackOverflowSlowPath; // For pending_deoptimization_env_. |
628 | 630 |
629 static bool ShouldInlineSmiStringHashCode(const ICData& ic_data); | 631 static bool ShouldInlineSmiStringHashCode(const ICData& ic_data); |
630 | 632 |
631 void EmitFrameEntry(); | 633 void EmitFrameEntry(); |
632 | 634 |
633 void AddStaticCallTarget(const Function& function); | |
634 | |
635 void GenerateDeferredCode(); | 635 void GenerateDeferredCode(); |
636 | 636 |
637 void EmitInstructionPrologue(Instruction* instr); | 637 void EmitInstructionPrologue(Instruction* instr); |
638 void EmitInstructionEpilogue(Instruction* instr); | 638 void EmitInstructionEpilogue(Instruction* instr); |
639 | 639 |
640 // Emit code to load a Value into register 'dst'. | 640 // Emit code to load a Value into register 'dst'. |
641 void LoadValue(Register dst, Value* value); | 641 void LoadValue(Register dst, Value* value); |
642 | 642 |
643 void EmitOptimizedStaticCall(const Function& function, | 643 void EmitOptimizedStaticCall(const Function& function, |
644 const Array& arguments_descriptor, | 644 const Array& arguments_descriptor, |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
830 const GrowableArray<const Function*>& inline_id_to_function_; | 830 const GrowableArray<const Function*>& inline_id_to_function_; |
831 const GrowableArray<TokenPosition>& inline_id_to_token_pos_; | 831 const GrowableArray<TokenPosition>& inline_id_to_token_pos_; |
832 const GrowableArray<intptr_t>& caller_inline_id_; | 832 const GrowableArray<intptr_t>& caller_inline_id_; |
833 | 833 |
834 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); | 834 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); |
835 }; | 835 }; |
836 | 836 |
837 } // namespace dart | 837 } // namespace dart |
838 | 838 |
839 #endif // VM_FLOW_GRAPH_COMPILER_H_ | 839 #endif // VM_FLOW_GRAPH_COMPILER_H_ |
OLD | NEW |