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 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 | 216 |
217 // SSA transformation methods and fields. | 217 // SSA transformation methods and fields. |
218 void ComputeDominators(GrowableArray<BitVector*>* dominance_frontier); | 218 void ComputeDominators(GrowableArray<BitVector*>* dominance_frontier); |
219 | 219 |
220 void CompressPath( | 220 void CompressPath( |
221 intptr_t start_index, | 221 intptr_t start_index, |
222 intptr_t current_index, | 222 intptr_t current_index, |
223 GrowableArray<intptr_t>* parent, | 223 GrowableArray<intptr_t>* parent, |
224 GrowableArray<intptr_t>* label); | 224 GrowableArray<intptr_t>* label); |
225 | 225 |
| 226 void InitializeOsrLocals(GrowableArray<Definition*>* env); |
| 227 void InitializeOsrLocalRange(GrowableArray<Definition*>* env, |
| 228 RawObject** base, |
| 229 intptr_t count); |
| 230 |
226 void Rename(GrowableArray<PhiInstr*>* live_phis, | 231 void Rename(GrowableArray<PhiInstr*>* live_phis, |
227 VariableLivenessAnalysis* variable_liveness, | 232 VariableLivenessAnalysis* variable_liveness, |
228 ZoneGrowableArray<Definition*>* inlining_parameters); | 233 ZoneGrowableArray<Definition*>* inlining_parameters); |
229 void RenameRecursive( | 234 void RenameRecursive( |
230 BlockEntryInstr* block_entry, | 235 BlockEntryInstr* block_entry, |
231 GrowableArray<Definition*>* env, | 236 GrowableArray<Definition*>* env, |
232 GrowableArray<PhiInstr*>* live_phis, | 237 GrowableArray<PhiInstr*>* live_phis, |
233 VariableLivenessAnalysis* variable_liveness); | 238 VariableLivenessAnalysis* variable_liveness); |
234 | 239 |
235 void AttachEnvironment(Instruction* instr, GrowableArray<Definition*>* env); | 240 void AttachEnvironment(Instruction* instr, GrowableArray<Definition*>* env); |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 // Per block sets of available blocks. Block A is available at the block B if | 386 // Per block sets of available blocks. Block A is available at the block B if |
382 // and only if A dominates B and all paths from A to B are free of side | 387 // and only if A dominates B and all paths from A to B are free of side |
383 // effects. | 388 // effects. |
384 GrowableArray<BitVector*> available_at_; | 389 GrowableArray<BitVector*> available_at_; |
385 }; | 390 }; |
386 | 391 |
387 | 392 |
388 } // namespace dart | 393 } // namespace dart |
389 | 394 |
390 #endif // VM_FLOW_GRAPH_H_ | 395 #endif // VM_FLOW_GRAPH_H_ |
OLD | NEW |