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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 // Used for describing a deoptimization point after call (lazy deoptimization). | 60 // Used for describing a deoptimization point after call (lazy deoptimization). |
61 // For deoptimization before instruction use class CompilerDeoptInfoWithStub. | 61 // For deoptimization before instruction use class CompilerDeoptInfoWithStub. |
62 class CompilerDeoptInfo : public ZoneAllocated { | 62 class CompilerDeoptInfo : public ZoneAllocated { |
63 public: | 63 public: |
64 CompilerDeoptInfo(intptr_t deopt_id, DeoptReasonId reason) | 64 CompilerDeoptInfo(intptr_t deopt_id, DeoptReasonId reason) |
65 : pc_offset_(-1), | 65 : pc_offset_(-1), |
66 deopt_id_(deopt_id), | 66 deopt_id_(deopt_id), |
67 reason_(reason), | 67 reason_(reason), |
68 deoptimization_env_(NULL) {} | 68 deoptimization_env_(NULL) {} |
69 | 69 |
70 RawDeoptInfo* CreateDeoptInfo(FlowGraphCompiler* compiler); | 70 RawDeoptInfo* CreateDeoptInfo(FlowGraphCompiler* compiler, |
| 71 DeoptInfoBuilder* builder); |
71 | 72 |
72 void AllocateIncomingParametersRecursive(Environment* env, | 73 void AllocateIncomingParametersRecursive(Environment* env, |
73 intptr_t* stack_height); | 74 intptr_t* stack_height); |
74 | 75 |
75 // No code needs to be generated. | 76 // No code needs to be generated. |
76 virtual void GenerateCode(FlowGraphCompiler* compiler, intptr_t stub_ix) {} | 77 virtual void GenerateCode(FlowGraphCompiler* compiler, intptr_t stub_ix) {} |
77 | 78 |
78 // Builds deopt-after continuation point. | 79 // Builds deopt-after continuation point. |
79 virtual void BuildReturnAddress(DeoptInfoBuilder* builder, | 80 virtual void BuildReturnAddress(DeoptInfoBuilder* builder, |
80 const Function& function, | 81 const Function& function, |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 #include "vm/flow_graph_compiler_ia32.h" | 149 #include "vm/flow_graph_compiler_ia32.h" |
149 #elif defined(TARGET_ARCH_X64) | 150 #elif defined(TARGET_ARCH_X64) |
150 #include "vm/flow_graph_compiler_x64.h" | 151 #include "vm/flow_graph_compiler_x64.h" |
151 #elif defined(TARGET_ARCH_ARM) | 152 #elif defined(TARGET_ARCH_ARM) |
152 #include "vm/flow_graph_compiler_arm.h" | 153 #include "vm/flow_graph_compiler_arm.h" |
153 #else | 154 #else |
154 #error Unknown architecture. | 155 #error Unknown architecture. |
155 #endif | 156 #endif |
156 | 157 |
157 #endif // VM_FLOW_GRAPH_COMPILER_H_ | 158 #endif // VM_FLOW_GRAPH_COMPILER_H_ |
OLD | NEW |