| Index: runtime/vm/flow_graph.cc
|
| diff --git a/runtime/vm/flow_graph.cc b/runtime/vm/flow_graph.cc
|
| index 1964a81e64331ae42df08de622514a56ad02e065..1a62d89d2577e87062d31cf5762a1ed949a986cc 100644
|
| --- a/runtime/vm/flow_graph.cc
|
| +++ b/runtime/vm/flow_graph.cc
|
| @@ -793,7 +793,7 @@ void FlowGraph::RenameRecursive(BlockEntryInstr* block_entry,
|
| GrowableArray<PhiInstr*>* live_phis,
|
| VariableLivenessAnalysis* variable_liveness) {
|
| // 1. Process phis first.
|
| - if (block_entry->IsJoinEntry()) {
|
| + if (block_entry->IsJoinEntry() || block_entry->IsIndirectEntry()) {
|
| JoinEntryInstr* join = block_entry->AsJoinEntry();
|
| if (join->phis() != NULL) {
|
| for (intptr_t i = 0; i < join->phis()->length(); ++i) {
|
| @@ -971,7 +971,8 @@ void FlowGraph::RenameRecursive(BlockEntryInstr* block_entry,
|
| // 4. Process successor block. We have edge-split form, so that only blocks
|
| // with one successor can have a join block as successor.
|
| if ((block_entry->last_instruction()->SuccessorCount() == 1) &&
|
| - block_entry->last_instruction()->SuccessorAt(0)->IsJoinEntry()) {
|
| + (block_entry->last_instruction()->SuccessorAt(0)->IsJoinEntry() ||
|
| + block_entry->last_instruction()->SuccessorAt(0)->IsIndirectEntry())) {
|
| JoinEntryInstr* successor =
|
| block_entry->last_instruction()->SuccessorAt(0)->AsJoinEntry();
|
| intptr_t pred_index = successor->IndexOfPredecessor(block_entry);
|
|
|