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?


On Sep 9, 2009, at 3:35 PM, Vladimir Kozlov wrote:

> 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:

More information about the hotspot-compiler-dev mailing list