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