< prev index next >
src/hotspot/share/opto/escape.cpp
Print this page
*** 2723,2733 ****
ArrayCopyNode* ac = proj_in->in(TypeFunc::Memory)->as_MergeMem()->in(Compile::AliasIdxRaw)->in(0)->as_ArrayCopy();
if (ac->may_modify(toop, igvn)) {
break;
}
}
! result = proj_in->in(TypeFunc::Memory);
}
} else if (result->is_MergeMem()) {
MergeMemNode *mmem = result->as_MergeMem();
result = step_through_mergemem(mmem, alias_idx, toop);
if (result == mmem->base_memory()) {
--- 2723,2733 ----
ArrayCopyNode* ac = proj_in->in(TypeFunc::Memory)->as_MergeMem()->in(Compile::AliasIdxRaw)->in(0)->as_ArrayCopy();
if (ac->may_modify(toop, igvn)) {
break;
}
}
! result = proj_in->in(TypeFunc::Memory); // FYI: bypasses a membar
}
} else if (result->is_MergeMem()) {
MergeMemNode *mmem = result->as_MergeMem();
result = step_through_mergemem(mmem, alias_idx, toop);
if (result == mmem->base_memory()) {
*** 2802,2812 ****
} else if (C->get_alias_index(t) != alias_idx) {
// Create a new Phi with the specified alias index type.
result = split_memory_phi(mphi, alias_idx, orig_phis);
}
}
- // the result is either MemNode, PhiNode, InitializeNode.
return result;
}
//
// Convert the types of unescaped object to instance types where possible,
--- 2802,2811 ----
< prev index next >