equal
deleted
inserted
replaced
311 set_wrote_stable(true); |
311 set_wrote_stable(true); |
312 } |
312 } |
313 |
313 |
314 // Preserve allocation ptr to create precedent edge to it in membar |
314 // Preserve allocation ptr to create precedent edge to it in membar |
315 // generated on exit from constructor. |
315 // generated on exit from constructor. |
316 if (C->eliminate_boxing() && |
316 if (AllocateNode::Ideal_allocation(obj, &_gvn) != NULL) { |
317 adr_type->isa_oopptr() && adr_type->is_oopptr()->is_ptr_to_boxed_value() && |
317 if (field->is_final()) { |
318 AllocateNode::Ideal_allocation(obj, &_gvn) != NULL) { |
318 set_alloc_with_final(obj); |
319 set_alloc_with_final(obj); |
319 } |
|
320 if (field->is_stable()) { |
|
321 set_alloc_with_stable(obj); |
|
322 } |
|
323 } else if (field->is_stable()) { |
|
324 // This stable field doesn't have an allocation, set |
|
325 // alloc_with_stable as NULL: its initial value is NodeSentinel, |
|
326 // if it is not set to NULL here, next set_alloc_with_stable |
|
327 // call might set none-NULL value successfully. |
|
328 set_alloc_with_stable(NULL); |
320 } |
329 } |
321 } |
330 } |
322 } |
331 } |
323 |
332 |
324 //============================================================================= |
333 //============================================================================= |