< prev index next >
src/hotspot/share/opto/parseHelper.cpp
Print this page
*** 369,380 ****
val = null_check(val);
dec_sp(2);
if (stopped()) return;
val = ValueTypeNode::make_from_oop(this, val, gvn().type(val)->value_klass());
} else if (val->is_ValueType() && !field->is_flattenable()) {
! // Non-flattenable field should not be scalarized
! // Re-execute withfield if buffering triggers deoptimization
PreserveReexecuteState preexecs(this);
jvms()->set_should_reexecute(true);
inc_sp(2);
val = ValueTypePtrNode::make_from_value_type(this, val->as_ValueType());
}
--- 369,380 ----
val = null_check(val);
dec_sp(2);
if (stopped()) return;
val = ValueTypeNode::make_from_oop(this, val, gvn().type(val)->value_klass());
} else if (val->is_ValueType() && !field->is_flattenable()) {
! // Non-flattenable field value needs to be allocated because it can be merged
! // with an oop. Re-execute withfield if buffering triggers deoptimization.
PreserveReexecuteState preexecs(this);
jvms()->set_should_reexecute(true);
inc_sp(2);
val = ValueTypePtrNode::make_from_value_type(this, val->as_ValueType());
}
< prev index next >