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(); |