| 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 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 // those loads that are not affected by anything in the loop and can be | 174 // those loads that are not affected by anything in the loop and can be |
| 175 // hoisted out. Sets are computed by LoadOptimizer. | 175 // hoisted out. Sets are computed by LoadOptimizer. |
| 176 ZoneGrowableArray<BitVector*>* loop_invariant_loads() const { | 176 ZoneGrowableArray<BitVector*>* loop_invariant_loads() const { |
| 177 return loop_invariant_loads_; | 177 return loop_invariant_loads_; |
| 178 } | 178 } |
| 179 void set_loop_invariant_loads( | 179 void set_loop_invariant_loads( |
| 180 ZoneGrowableArray<BitVector*>* loop_invariant_loads) { | 180 ZoneGrowableArray<BitVector*>* loop_invariant_loads) { |
| 181 loop_invariant_loads_ = loop_invariant_loads; | 181 loop_invariant_loads_ = loop_invariant_loads; |
| 182 } | 182 } |
| 183 | 183 |
| 184 bool IsCompiledForOsr() const { return graph_entry()->IsCompiledForOsr(); } |
| 185 |
| 184 private: | 186 private: |
| 185 friend class IfConverter; | 187 friend class IfConverter; |
| 186 friend class BranchSimplifier; | 188 friend class BranchSimplifier; |
| 187 friend class ConstantPropagator; | 189 friend class ConstantPropagator; |
| 188 | 190 |
| 189 // SSA transformation methods and fields. | 191 // SSA transformation methods and fields. |
| 190 void ComputeDominators(GrowableArray<BitVector*>* dominance_frontier); | 192 void ComputeDominators(GrowableArray<BitVector*>* dominance_frontier); |
| 191 | 193 |
| 192 void CompressPath( | 194 void CompressPath( |
| 193 intptr_t start_index, | 195 intptr_t start_index, |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 342 // Per block sets of available blocks. Block A is available at the block B if | 344 // Per block sets of available blocks. Block A is available at the block B if |
| 343 // and only if A dominates B and all paths from A to B are free of side | 345 // and only if A dominates B and all paths from A to B are free of side |
| 344 // effects. | 346 // effects. |
| 345 GrowableArray<BitVector*> available_at_; | 347 GrowableArray<BitVector*> available_at_; |
| 346 }; | 348 }; |
| 347 | 349 |
| 348 | 350 |
| 349 } // namespace dart | 351 } // namespace dart |
| 350 | 352 |
| 351 #endif // VM_FLOW_GRAPH_H_ | 353 #endif // VM_FLOW_GRAPH_H_ |
| OLD | NEW |