| Index: dart/runtime/vm/flow_graph.cc
|
| ===================================================================
|
| --- dart/runtime/vm/flow_graph.cc (revision 37111)
|
| +++ dart/runtime/vm/flow_graph.cc (working copy)
|
| @@ -42,7 +42,8 @@
|
| use_far_branches_(false),
|
| loop_headers_(NULL),
|
| loop_invariant_loads_(NULL),
|
| - guarded_fields_(builder.guarded_fields()) {
|
| + guarded_fields_(builder.guarded_fields()),
|
| + deferred_prefixes_(builder.deferred_prefixes()) {
|
| DiscoverBlocks();
|
| }
|
|
|
| @@ -63,6 +64,21 @@
|
| }
|
|
|
|
|
| +void FlowGraph::AddToDeferredPrefixes(
|
| + ZoneGrowableArray<const LibraryPrefix*>* from) {
|
| + ZoneGrowableArray<const LibraryPrefix*>* to = deferred_prefixes();
|
| + for (intptr_t i = 0; i < from->length(); i++) {
|
| + const LibraryPrefix* prefix = (*from)[i];
|
| + for (intptr_t j = 0; j < to->length(); j++) {
|
| + if ((*to)[j]->raw() == prefix->raw()) {
|
| + return;
|
| + }
|
| + }
|
| + to->Add(prefix);
|
| + }
|
| +}
|
| +
|
| +
|
| bool FlowGraph::ShouldReorderBlocks(const Function& function,
|
| bool is_optimized) {
|
| return is_optimized && FLAG_reorder_basic_blocks && !function.is_intrinsic();
|
|
|