Request for reviews (S): 6836054: java/util/Arrays/CopyMethods.java fails on solaris-sparc with IllegalArgumentException
Thomas.Rodriguez at Sun.COM
Fri May 8 14:01:42 PDT 2009
I have to admit I don't really follow this logic in the code. How is
it that we can allocate something but not know it's actual type?
Isn't that required to emit the allocation in the first place?
On May 7, 2009, at 8:29 PM, Vladimir Kozlov wrote:
> Fixed 6836054: java/util/Arrays/CopyMethods.java fails on solaris-
> sparc with IllegalArgumentException
> Escape Analysis requires that allocations should have
> exact type (by using CheckCastPP node) for restoring
> objects during deoptimization. But reflection allocation
> set type to j.l.Object assuming that caller will cast
> to exact type. In the failing case there is no cast
> to array type so debug info contains incorrect type
> (j.l.Object) for scalar replaced array allocation.
> It causes the Exception after deoptimization.
> Do not mark an allocation as scalar replaceable if
> it does not have exact type.
> Reviewed by:
> Fix verified (y/n): y, bugs case
> Other testing:
> JPRT, CTW
More information about the hotspot-compiler-dev