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/assembler_macros.h" | 10 #include "vm/assembler_macros.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 public: | 63 public: |
64 CompilerDeoptInfo(intptr_t deopt_id, DeoptReasonId reason) | 64 CompilerDeoptInfo(intptr_t deopt_id, DeoptReasonId reason) |
65 : deopt_id_(deopt_id), reason_(reason), deoptimization_env_(NULL) {} | 65 : deopt_id_(deopt_id), reason_(reason), deoptimization_env_(NULL) {} |
66 | 66 |
67 void set_deoptimization_env(Environment* env) { | 67 void set_deoptimization_env(Environment* env) { |
68 deoptimization_env_ = env; | 68 deoptimization_env_ = env; |
69 } | 69 } |
70 | 70 |
71 RawDeoptInfo* CreateDeoptInfo(FlowGraphCompiler* compiler); | 71 RawDeoptInfo* CreateDeoptInfo(FlowGraphCompiler* compiler); |
72 | 72 |
| 73 void AllocateIncomingParametersRecursive(Environment* env, |
| 74 intptr_t* stack_height); |
| 75 |
73 // No code needs to be generated. | 76 // No code needs to be generated. |
74 virtual void GenerateCode(FlowGraphCompiler* compiler, intptr_t stub_ix) {} | 77 virtual void GenerateCode(FlowGraphCompiler* compiler, intptr_t stub_ix) {} |
75 | 78 |
76 // Builds deopt-after continuation point. | 79 // Builds deopt-after continuation point. |
77 virtual void BuildReturnAddress(DeoptInfoBuilder* builder, | 80 virtual void BuildReturnAddress(DeoptInfoBuilder* builder, |
78 const Function& function, | 81 const Function& function, |
79 intptr_t slot_ix); | 82 intptr_t slot_ix); |
80 | 83 |
81 intptr_t deopt_id() const { return deopt_id_; } | 84 intptr_t deopt_id() const { return deopt_id_; } |
82 DeoptReasonId reason() const { return reason_; } | 85 DeoptReasonId reason() const { return reason_; } |
83 const Environment* deoptimization_env() const { return deoptimization_env_; } | 86 const Environment* deoptimization_env() const { return deoptimization_env_; } |
84 | 87 |
85 private: | 88 private: |
86 const intptr_t deopt_id_; | 89 const intptr_t deopt_id_; |
87 const DeoptReasonId reason_; | 90 const DeoptReasonId reason_; |
88 const Environment* deoptimization_env_; | 91 Environment* deoptimization_env_; |
89 | 92 |
90 DISALLOW_COPY_AND_ASSIGN(CompilerDeoptInfo); | 93 DISALLOW_COPY_AND_ASSIGN(CompilerDeoptInfo); |
91 }; | 94 }; |
92 | 95 |
93 | 96 |
94 class CompilerDeoptInfoWithStub : public CompilerDeoptInfo { | 97 class CompilerDeoptInfoWithStub : public CompilerDeoptInfo { |
95 public: | 98 public: |
96 CompilerDeoptInfoWithStub(intptr_t deopt_id, | 99 CompilerDeoptInfoWithStub(intptr_t deopt_id, |
97 DeoptReasonId reason) | 100 DeoptReasonId reason) |
98 : CompilerDeoptInfo(deopt_id, reason), entry_label_() { | 101 : CompilerDeoptInfo(deopt_id, reason), entry_label_() { |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 #include "vm/flow_graph_compiler_ia32.h" | 142 #include "vm/flow_graph_compiler_ia32.h" |
140 #elif defined(TARGET_ARCH_X64) | 143 #elif defined(TARGET_ARCH_X64) |
141 #include "vm/flow_graph_compiler_x64.h" | 144 #include "vm/flow_graph_compiler_x64.h" |
142 #elif defined(TARGET_ARCH_ARM) | 145 #elif defined(TARGET_ARCH_ARM) |
143 #include "vm/flow_graph_compiler_arm.h" | 146 #include "vm/flow_graph_compiler_arm.h" |
144 #else | 147 #else |
145 #error Unknown architecture. | 148 #error Unknown architecture. |
146 #endif | 149 #endif |
147 | 150 |
148 #endif // VM_FLOW_GRAPH_COMPILER_H_ | 151 #endif // VM_FLOW_GRAPH_COMPILER_H_ |
OLD | NEW |