< prev index next >
src/hotspot/share/opto/valuetypenode.cpp
Print this page
*** 229,239 ****
void ValueTypeBaseNode::make_scalar_in_safepoints(Node* root, PhaseGVN* gvn) {
// Process all safepoint uses and scalarize value type
Unique_Node_List worklist;
for (DUIterator_Fast imax, i = fast_outs(imax); i < imax; i++) {
Node* u = fast_out(i);
! if (u->is_SafePoint() && (!u->is_Call() || u->as_Call()->has_debug_use(this))) {
SafePointNode* sfpt = u->as_SafePoint();
Node* in_oop = get_oop();
const Type* oop_type = in_oop->bottom_type();
assert(Opcode() == Op_ValueTypePtr || !isa_ValueType()->is_allocated(gvn), "already heap allocated value types should be linked directly");
int nb = make_scalar_in_safepoint(worklist, sfpt, root, gvn);
--- 229,239 ----
void ValueTypeBaseNode::make_scalar_in_safepoints(Node* root, PhaseGVN* gvn) {
// Process all safepoint uses and scalarize value type
Unique_Node_List worklist;
for (DUIterator_Fast imax, i = fast_outs(imax); i < imax; i++) {
Node* u = fast_out(i);
! if (u->is_SafePoint() && !u->is_CallLeaf() && (!u->is_Call() || u->as_Call()->has_debug_use(this))) {
SafePointNode* sfpt = u->as_SafePoint();
Node* in_oop = get_oop();
const Type* oop_type = in_oop->bottom_type();
assert(Opcode() == Op_ValueTypePtr || !isa_ValueType()->is_allocated(gvn), "already heap allocated value types should be linked directly");
int nb = make_scalar_in_safepoint(worklist, sfpt, root, gvn);
< prev index next >