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_X64_H_ | 5 #ifndef VM_FLOW_GRAPH_COMPILER_X64_H_ |
6 #define VM_FLOW_GRAPH_COMPILER_X64_H_ | 6 #define VM_FLOW_GRAPH_COMPILER_X64_H_ |
7 | 7 |
8 #ifndef VM_FLOW_GRAPH_COMPILER_H_ | 8 #ifndef VM_FLOW_GRAPH_COMPILER_H_ |
9 #error Include flow_graph_compiler.h instead of flow_graph_compiler_x64.h. | 9 #error Include flow_graph_compiler.h instead of flow_graph_compiler_x64.h. |
10 #endif | 10 #endif |
(...skipping 25 matching lines...) Expand all Loading... |
36 | 36 |
37 // Accessors. | 37 // Accessors. |
38 Assembler* assembler() const { return assembler_; } | 38 Assembler* assembler() const { return assembler_; } |
39 const ParsedFunction& parsed_function() const { return parsed_function_; } | 39 const ParsedFunction& parsed_function() const { return parsed_function_; } |
40 const GrowableArray<BlockEntryInstr*>& block_order() const { | 40 const GrowableArray<BlockEntryInstr*>& block_order() const { |
41 return block_order_; | 41 return block_order_; |
42 } | 42 } |
43 DescriptorList* pc_descriptors_list() const { | 43 DescriptorList* pc_descriptors_list() const { |
44 return pc_descriptors_list_; | 44 return pc_descriptors_list_; |
45 } | 45 } |
46 const GrowableObjectArray& object_table() { | |
47 return object_table_; | |
48 } | |
49 BlockEntryInstr* current_block() const { return current_block_; } | 46 BlockEntryInstr* current_block() const { return current_block_; } |
50 void set_current_block(BlockEntryInstr* value) { | 47 void set_current_block(BlockEntryInstr* value) { |
51 current_block_ = value; | 48 current_block_ = value; |
52 } | 49 } |
53 static bool CanOptimize(); | 50 static bool CanOptimize(); |
54 bool is_optimizing() const { return is_optimizing_; } | 51 bool is_optimizing() const { return is_optimizing_; } |
55 | 52 |
56 const GrowableArray<BlockInfo*>& block_info() const { return block_info_; } | 53 const GrowableArray<BlockInfo*>& block_info() const { return block_info_; } |
57 ParallelMoveResolver* parallel_move_resolver() { | 54 ParallelMoveResolver* parallel_move_resolver() { |
58 return ¶llel_move_resolver_; | 55 return ¶llel_move_resolver_; |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 // Compiler specific per-block state. Indexed by postorder block number | 299 // Compiler specific per-block state. Indexed by postorder block number |
303 // for convenience. This is not the block's index in the block order, | 300 // for convenience. This is not the block's index in the block order, |
304 // which is reverse postorder. | 301 // which is reverse postorder. |
305 BlockEntryInstr* current_block_; | 302 BlockEntryInstr* current_block_; |
306 ExceptionHandlerList* exception_handlers_list_; | 303 ExceptionHandlerList* exception_handlers_list_; |
307 DescriptorList* pc_descriptors_list_; | 304 DescriptorList* pc_descriptors_list_; |
308 StackmapTableBuilder* stackmap_table_builder_; | 305 StackmapTableBuilder* stackmap_table_builder_; |
309 GrowableArray<BlockInfo*> block_info_; | 306 GrowableArray<BlockInfo*> block_info_; |
310 GrowableArray<CompilerDeoptInfo*> deopt_infos_; | 307 GrowableArray<CompilerDeoptInfo*> deopt_infos_; |
311 GrowableArray<SlowPathCode*> slow_path_code_; | 308 GrowableArray<SlowPathCode*> slow_path_code_; |
312 const GrowableObjectArray& object_table_; | |
313 const bool is_optimizing_; | 309 const bool is_optimizing_; |
314 const bool is_dart_leaf_; | 310 const bool is_dart_leaf_; |
315 | 311 |
316 const Bool& bool_true_; | 312 const Bool& bool_true_; |
317 const Bool& bool_false_; | 313 const Bool& bool_false_; |
318 const Class& double_class_; | 314 const Class& double_class_; |
319 | 315 |
320 ParallelMoveResolver parallel_move_resolver_; | 316 ParallelMoveResolver parallel_move_resolver_; |
321 | 317 |
322 // Currently instructions generate deopt stubs internally by | 318 // Currently instructions generate deopt stubs internally by |
323 // calling AddDeoptStub. To communicate deoptimization environment | 319 // calling AddDeoptStub. To communicate deoptimization environment |
324 // that should be used when deoptimizing we store it in this variable. | 320 // that should be used when deoptimizing we store it in this variable. |
325 // In future AddDeoptStub should be moved out of the instruction template. | 321 // In future AddDeoptStub should be moved out of the instruction template. |
326 Environment* pending_deoptimization_env_; | 322 Environment* pending_deoptimization_env_; |
327 | 323 |
328 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); | 324 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); |
329 }; | 325 }; |
330 | 326 |
331 } // namespace dart | 327 } // namespace dart |
332 | 328 |
333 #endif // VM_FLOW_GRAPH_COMPILER_X64_H_ | 329 #endif // VM_FLOW_GRAPH_COMPILER_X64_H_ |
OLD | NEW |