| 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/bit_vector.h" | 8 #include "vm/bit_vector.h" |
| 9 #include "vm/growable_array.h" | 9 #include "vm/growable_array.h" |
| 10 #include "vm/hash_map.h" | 10 #include "vm/hash_map.h" |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 } | 280 } |
| 281 | 281 |
| 282 ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes() const { | 282 ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes() const { |
| 283 return deferred_prefixes_; | 283 return deferred_prefixes_; |
| 284 } | 284 } |
| 285 | 285 |
| 286 BitVector* captured_parameters() const { | 286 BitVector* captured_parameters() const { |
| 287 return captured_parameters_; | 287 return captured_parameters_; |
| 288 } | 288 } |
| 289 | 289 |
| 290 intptr_t inlining_id() const { return inlining_id_; } |
| 291 void set_inlining_id(intptr_t value) { inlining_id_ = value; } |
| 292 |
| 290 private: | 293 private: |
| 291 friend class IfConverter; | 294 friend class IfConverter; |
| 292 friend class BranchSimplifier; | 295 friend class BranchSimplifier; |
| 293 friend class ConstantPropagator; | 296 friend class ConstantPropagator; |
| 294 friend class DeadCodeElimination; | 297 friend class DeadCodeElimination; |
| 295 | 298 |
| 296 // SSA transformation methods and fields. | 299 // SSA transformation methods and fields. |
| 297 void ComputeDominators(GrowableArray<BitVector*>* dominance_frontier); | 300 void ComputeDominators(GrowableArray<BitVector*>* dominance_frontier); |
| 298 | 301 |
| 299 void CompressPath( | 302 void CompressPath( |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 | 359 |
| 357 BlockEffects* block_effects_; | 360 BlockEffects* block_effects_; |
| 358 bool licm_allowed_; | 361 bool licm_allowed_; |
| 359 | 362 |
| 360 ZoneGrowableArray<BlockEntryInstr*>* loop_headers_; | 363 ZoneGrowableArray<BlockEntryInstr*>* loop_headers_; |
| 361 ZoneGrowableArray<BitVector*>* loop_invariant_loads_; | 364 ZoneGrowableArray<BitVector*>* loop_invariant_loads_; |
| 362 ZoneGrowableArray<const Field*>* guarded_fields_; | 365 ZoneGrowableArray<const Field*>* guarded_fields_; |
| 363 ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes_; | 366 ZoneGrowableArray<const LibraryPrefix*>* deferred_prefixes_; |
| 364 DirectChainedHashMap<ConstantPoolTrait> constant_instr_pool_; | 367 DirectChainedHashMap<ConstantPoolTrait> constant_instr_pool_; |
| 365 BitVector* captured_parameters_; | 368 BitVector* captured_parameters_; |
| 369 |
| 370 intptr_t inlining_id_; |
| 366 }; | 371 }; |
| 367 | 372 |
| 368 | 373 |
| 369 class LivenessAnalysis : public ValueObject { | 374 class LivenessAnalysis : public ValueObject { |
| 370 public: | 375 public: |
| 371 LivenessAnalysis(intptr_t variable_count, | 376 LivenessAnalysis(intptr_t variable_count, |
| 372 const GrowableArray<BlockEntryInstr*>& postorder); | 377 const GrowableArray<BlockEntryInstr*>& postorder); |
| 373 | 378 |
| 374 void Analyze(); | 379 void Analyze(); |
| 375 | 380 |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 | 516 |
| 512 private: | 517 private: |
| 513 GrowableArray<Definition*> defs_; | 518 GrowableArray<Definition*> defs_; |
| 514 BitVector* contains_vector_; | 519 BitVector* contains_vector_; |
| 515 }; | 520 }; |
| 516 | 521 |
| 517 | 522 |
| 518 } // namespace dart | 523 } // namespace dart |
| 519 | 524 |
| 520 #endif // VM_FLOW_GRAPH_H_ | 525 #endif // VM_FLOW_GRAPH_H_ |
| OLD | NEW |