| OLD | NEW | 
|---|
| 1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2013, 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_H_ | 5 #ifndef VM_FLOW_GRAPH_H_ | 
| 6 #define VM_FLOW_GRAPH_H_ | 6 #define VM_FLOW_GRAPH_H_ | 
| 7 | 7 | 
| 8 #include "vm/growable_array.h" | 8 #include "vm/growable_array.h" | 
| 9 #include "vm/intermediate_language.h" | 9 #include "vm/intermediate_language.h" | 
| 10 #include "vm/parser.h" | 10 #include "vm/parser.h" | 
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 107   intptr_t allocate_block_id() { return ++max_block_id_; } | 107   intptr_t allocate_block_id() { return ++max_block_id_; } | 
| 108 | 108 | 
| 109   GraphEntryInstr* graph_entry() const { | 109   GraphEntryInstr* graph_entry() const { | 
| 110     return graph_entry_; | 110     return graph_entry_; | 
| 111   } | 111   } | 
| 112 | 112 | 
| 113   ConstantInstr* constant_null() const { | 113   ConstantInstr* constant_null() const { | 
| 114     return constant_null_; | 114     return constant_null_; | 
| 115   } | 115   } | 
| 116 | 116 | 
|  | 117   ConstantInstr* constant_dead() const { | 
|  | 118     return constant_dead_; | 
|  | 119   } | 
|  | 120 | 
| 117   intptr_t alloc_ssa_temp_index() { return current_ssa_temp_index_++; } | 121   intptr_t alloc_ssa_temp_index() { return current_ssa_temp_index_++; } | 
| 118 | 122 | 
| 119   intptr_t InstructionCount() const; | 123   intptr_t InstructionCount() const; | 
| 120 | 124 | 
| 121   ConstantInstr* GetConstant(const Object& object); | 125   ConstantInstr* GetConstant(const Object& object); | 
| 122   void AddToInitialDefinitions(Definition* defn); | 126   void AddToInitialDefinitions(Definition* defn); | 
| 123 | 127 | 
| 124   void InsertBefore(Instruction* next, | 128   void InsertBefore(Instruction* next, | 
| 125                     Instruction* instr, | 129                     Instruction* instr, | 
| 126                     Environment* env, | 130                     Environment* env, | 
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 262   const ParsedFunction& parsed_function_; | 266   const ParsedFunction& parsed_function_; | 
| 263   const intptr_t num_copied_params_; | 267   const intptr_t num_copied_params_; | 
| 264   const intptr_t num_non_copied_params_; | 268   const intptr_t num_non_copied_params_; | 
| 265   const intptr_t num_stack_locals_; | 269   const intptr_t num_stack_locals_; | 
| 266   GraphEntryInstr* graph_entry_; | 270   GraphEntryInstr* graph_entry_; | 
| 267   GrowableArray<BlockEntryInstr*> preorder_; | 271   GrowableArray<BlockEntryInstr*> preorder_; | 
| 268   GrowableArray<BlockEntryInstr*> postorder_; | 272   GrowableArray<BlockEntryInstr*> postorder_; | 
| 269   GrowableArray<BlockEntryInstr*> reverse_postorder_; | 273   GrowableArray<BlockEntryInstr*> reverse_postorder_; | 
| 270   GrowableArray<BlockEntryInstr*> optimized_block_order_; | 274   GrowableArray<BlockEntryInstr*> optimized_block_order_; | 
| 271   ConstantInstr* constant_null_; | 275   ConstantInstr* constant_null_; | 
|  | 276   ConstantInstr* constant_dead_; | 
| 272 | 277 | 
| 273   BlockEffects* block_effects_; | 278   BlockEffects* block_effects_; | 
| 274   bool licm_allowed_; | 279   bool licm_allowed_; | 
| 275 | 280 | 
| 276   bool use_far_branches_; | 281   bool use_far_branches_; | 
| 277 | 282 | 
| 278   ZoneGrowableArray<BlockEntryInstr*>* loop_headers_; | 283   ZoneGrowableArray<BlockEntryInstr*>* loop_headers_; | 
| 279   ZoneGrowableArray<BitVector*>* loop_invariant_loads_; | 284   ZoneGrowableArray<BitVector*>* loop_invariant_loads_; | 
| 280   ZoneGrowableArray<const Field*>* guarded_fields_; | 285   ZoneGrowableArray<const Field*>* guarded_fields_; | 
| 281 }; | 286 }; | 
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 376   // Per block sets of available blocks. Block A is available at the block B if | 381   // Per block sets of available blocks. Block A is available at the block B if | 
| 377   // and only if A dominates B and all paths from A to B are free of side | 382   // and only if A dominates B and all paths from A to B are free of side | 
| 378   // effects. | 383   // effects. | 
| 379   GrowableArray<BitVector*> available_at_; | 384   GrowableArray<BitVector*> available_at_; | 
| 380 }; | 385 }; | 
| 381 | 386 | 
| 382 | 387 | 
| 383 }  // namespace dart | 388 }  // namespace dart | 
| 384 | 389 | 
| 385 #endif  // VM_FLOW_GRAPH_H_ | 390 #endif  // VM_FLOW_GRAPH_H_ | 
| OLD | NEW | 
|---|