Index: runtime/vm/flow_graph_builder.cc |
=================================================================== |
--- runtime/vm/flow_graph_builder.cc (revision 36573) |
+++ runtime/vm/flow_graph_builder.cc (working copy) |
@@ -291,7 +291,9 @@ |
// TODO(zerny): Avoid creating unnecessary environments. Note that some |
// optimizations need deoptimization info for non-deoptable instructions, |
// eg, LICM on GOTOs. |
- if (instr->env() != NULL) call_->env()->DeepCopyToOuter(instr); |
+ if (instr->env() != NULL) { |
+ call_->env()->DeepCopyToOuter(callee_graph->isolate(), instr); |
+ } |
} |
if (instr->IsGoto()) { |
instr->AsGoto()->adjust_edge_weight(scale_factor); |
@@ -348,7 +350,7 @@ |
caller_graph_->set_max_block_id(join_id); |
JoinEntryInstr* join = |
new JoinEntryInstr(join_id, CatchClauseNode::kInvalidTryIndex); |
- join->InheritDeoptTargetAfter(call_); |
+ join->InheritDeoptTargetAfter(isolate(), call_); |
// The dominator set of the join is the intersection of the dominator |
// sets of all the predecessors. If we keep the dominator sets ordered |
@@ -367,7 +369,7 @@ |
for (intptr_t i = 0; i < num_exits; ++i) { |
// Add the control-flow edge. |
GotoInstr* goto_instr = new GotoInstr(join); |
- goto_instr->InheritDeoptTarget(ReturnAt(i)); |
+ goto_instr->InheritDeoptTarget(isolate(), ReturnAt(i)); |
LastInstructionAt(i)->LinkTo(goto_instr); |
ExitBlockAt(i)->set_last_instruction(LastInstructionAt(i)->next()); |
join->predecessors_.Add(ExitBlockAt(i)); |
@@ -452,7 +454,7 @@ |
TargetEntryInstr* false_block = |
new TargetEntryInstr(caller_graph_->allocate_block_id(), |
call_block->try_index()); |
- false_block->InheritDeoptTargetAfter(call_); |
+ false_block->InheritDeoptTargetAfter(isolate(), call_); |
false_block->LinkTo(call_->next()); |
call_block->ReplaceAsPredecessorWith(false_block); |
@@ -463,7 +465,7 @@ |
new Value(true_const), |
new Value(true_const), |
false)); // No number check. |
- branch->InheritDeoptTarget(call_); |
+ branch->InheritDeoptTarget(isolate(), call_); |
*branch->true_successor_address() = callee_entry; |
*branch->false_successor_address() = false_block; |