Request for reviews (S): 6880053
Tom Rodriguez
Thomas.Rodriguez at Sun.COM
Wed Sep 9 16:31:03 PDT 2009
I'm don't understand this. What is TypeOopPtr::NOTNULL supposed to
represent? That doesn't seem like a valid type in the lattice since
it would have to correspond to Object:NotNull which is already
represented by TypeInstPtr::NOTNULL. Why will the graph be incorrect
if the type is TypeInstPtr::NOTNULL?
tom
On Sep 9, 2009, at 3:35 PM, Vladimir Kozlov wrote:
> http://cr.openjdk.java.net/~kvn/6880053/webrev.00
>
> Fixed 6880053: assert(alloc_obj->as_CheckCastPP()->type() !=
> TypeInstPtr::NOTNULL)
>
> Problem:
> I added this assert in 6875577 fix to catch cases when
> the type of the cloned object is TypeInstPtr::NOTNULL
> since it will produce incorrect graph.
> And Nightly testing found such case: the method
> sun.reflect.GeneratedMethodAccessor4.invoke(Object o, Object[] ao)
> returns the clone of the Object o argument.
>
> Solution:
> Use more general oop type TypeOopPtr::NOTNULL for
> additional CheckCastPP node in clone() instrinsic and arraycopy.
> Also fix instance_id meet for TypeOopPtr.
>
> Reviewed by:
>
> Fix verified (y/n): y, test
>
> Other testing:
> JPRT
>
More information about the hotspot-compiler-dev
mailing list