| 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 #include "vm/flow_graph.h" | 5 #include "vm/flow_graph.h" |
| 6 | 6 |
| 7 #include "vm/bit_vector.h" | 7 #include "vm/bit_vector.h" |
| 8 #include "vm/flow_graph_builder.h" | 8 #include "vm/flow_graph_builder.h" |
| 9 #include "vm/il_printer.h" | 9 #include "vm/il_printer.h" |
| 10 #include "vm/intermediate_language.h" | 10 #include "vm/intermediate_language.h" |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 | 178 |
| 179 private: | 179 private: |
| 180 BlockEntryInstr* block_; | 180 BlockEntryInstr* block_; |
| 181 intptr_t next_successor_ix_; | 181 intptr_t next_successor_ix_; |
| 182 | 182 |
| 183 DISALLOW_ALLOCATION(); | 183 DISALLOW_ALLOCATION(); |
| 184 }; | 184 }; |
| 185 | 185 |
| 186 | 186 |
| 187 void FlowGraph::DiscoverBlocks() { | 187 void FlowGraph::DiscoverBlocks() { |
| 188 StackZone zone(isolate()); | 188 StackZone zone(thread()); |
| 189 | 189 |
| 190 // Initialize state. | 190 // Initialize state. |
| 191 preorder_.Clear(); | 191 preorder_.Clear(); |
| 192 postorder_.Clear(); | 192 postorder_.Clear(); |
| 193 reverse_postorder_.Clear(); | 193 reverse_postorder_.Clear(); |
| 194 parent_.Clear(); | 194 parent_.Clear(); |
| 195 | 195 |
| 196 GrowableArray<BlockTraversalState> block_stack; | 196 GrowableArray<BlockTraversalState> block_stack; |
| 197 graph_entry_->DiscoverBlock(NULL, &preorder_, &parent_); | 197 graph_entry_->DiscoverBlock(NULL, &preorder_, &parent_); |
| 198 block_stack.Add(BlockTraversalState(graph_entry_)); | 198 block_stack.Add(BlockTraversalState(graph_entry_)); |
| (...skipping 1191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1390 } | 1390 } |
| 1391 | 1391 |
| 1392 | 1392 |
| 1393 bool BlockEffects::IsSideEffectFreePath(BlockEntryInstr* from, | 1393 bool BlockEffects::IsSideEffectFreePath(BlockEntryInstr* from, |
| 1394 BlockEntryInstr* to) const { | 1394 BlockEntryInstr* to) const { |
| 1395 return available_at_[to->postorder_number()]->Contains( | 1395 return available_at_[to->postorder_number()]->Contains( |
| 1396 from->postorder_number()); | 1396 from->postorder_number()); |
| 1397 } | 1397 } |
| 1398 | 1398 |
| 1399 } // namespace dart | 1399 } // namespace dart |
| OLD | NEW |