RFR[S] : JDK-8244867 : 2 vector api tests crash with assert(is_reference_type(basic_type())) failed: wrong type
Bhateja, Jatin
jatin.bhateja at intel.com
Fri Jun 26 05:11:24 UTC 2020
Thanks Sandhya, Paul.
Comments addressed and change has been pushed.
Best Regards,
Jatin
> -----Original Message-----
> From: Viswanathan, Sandhya <sandhya.viswanathan at intel.com>
> Sent: Friday, June 26, 2020 4:49 AM
> To: Paul Sandoz <paul.sandoz at oracle.com>; Bhateja, Jatin
> <jatin.bhateja at intel.com>
> Cc: panama-dev <panama-dev at openjdk.java.net>; Vladimir Ivanov
> <vladimir.x.ivanov at oracle.com>
> Subject: RE: RFR[S] : JDK-8244867 : 2 vector api tests crash with
> assert(is_reference_type(basic_type())) failed: wrong type
>
> Hi Jatin,
>
> The patch looks good. Thanks a lot for fixing this. I have a couple of
> comments:
> 1) inline_vector_shuffle_to_vector: There is no check for vector_klass-
> >const_oop() == NULL .
> The function is_klass_initialized assumes that const_oop() is not NULL.
> 2) inline_vector_blend: Check for is_klass_initialized(mask_klass) is
> missing.
>
> Rest looks good to me.
>
> Best Regards,
> Sandhya
>
> -----Original Message-----
> From: panama-dev <panama-dev-bounces at openjdk.java.net> On Behalf Of Paul
> Sandoz
> Sent: Thursday, June 18, 2020 4:55 PM
> To: Bhateja, Jatin <jatin.bhateja at intel.com>
> Cc: panama-dev <panama-dev at openjdk.java.net>
> Subject: Re: RFR[S] : JDK-8244867 : 2 vector api tests crash with
> assert(is_reference_type(basic_type())) failed: wrong type
>
> Approach looks good to me, but I defer to Vladimir.
>
> Paul.
>
> > On Jun 18, 2020, at 5:44 AM, Bhateja, Jatin <jatin.bhateja at intel.com>
> wrote:
> >
> > Hi All,
> >
> > Following patch fixes the failing jtreg regressions
> >
> > JBS : https://bugs.openjdk.java.net/browse/JDK-8244867
> > Webrev:
> > http://cr.openjdk.java.net/~jbhateja/vectorIntrinsics/BUGS/JDK-8244867
> > /webrev.02/
> >
> > As per JVM specification section 5.5[1] a meager reference of class
> > passed as parameter (ldc #class.ref) to a method invocation does not
> trigger class initialization.
> >
> > In this case since JVM flags -Xcomp and -XX:-TieredCompilation are used
> compilation is triggered at first invocation of the method.
> > For gather operation a vector comparison is performed to check if
> > indices are in the valid range
> >
> > @Override
> > @ForceInline
> > public final IntMaxMask compare(Comparison op, Vector<Integer> v) {
> > return super.compareTemplate(IntMaxMask.class, op, v); //
> specialize
> > }
> >
> > In above vector compare API a mask class is passed as a parameter,
> > eager compilation(-Xcomp) gets triggered and compiler receives an
> > uninitialized class as an argument. This causes an assertion failure
> while validating static fields (ETYPE and LENGTH) Of this un-initialized
> mask class.
> >
> > Values of these static fields are used during vector object
> > re-construction in case of deoptimization. Adding safety checks to
> prevent intrincifiation if class arguments of non-primitive types are
> uninitialized.
> >
> > Thanks,
> > Jatin
> >
> > [1] :
> > https://docs.oracle.com/javase/specs/jvms/se14/html/jvms-5.html#jvms-5
> > .5
> >
More information about the panama-dev
mailing list