Any::isNull check

forax at forax at
Wed Dec 16 17:28:37 UTC 2015

There are 7 'times' (for a lack of better word) were the specialization can appear,
compile time, install time (a 'time' added by jigsaw when jlink is run to create the program image), load time, first invocation time, and jit runtime.

I see no real reason to see the specialization as one monolithic phase, so specialization will certainly decomposed in different slices covering the last 3 'times'.


----- Mail original -----
> De: "Mohammad A. Rezaei" <Mohammad.Rezaei at>
> À: "Rémi Forax" <forax at>, "Paul Benedict" <pbenedict at>, "Brian Goetz" <brian.goetz at>
> Cc: "valhalla-dev" <valhalla-dev at>
> Envoyé: Mercredi 16 Décembre 2015 17:49:03
> Objet: RE: Any::isNull check
> Doesn't this sort of optimization fit better in the (runtime) class
> specializer than either javac or C1/C2? Surely, the specializer has to deal
> with Any::isNull call sites regardless, so might as well not generate the
> dead code paths.
> Thanks
> Moh
> >-----Original Message-----
> >From: valhalla-dev [mailto:valhalla-dev-bounces at] On Behalf
> >Of
> >Rémi Forax
> >Sent: Wednesday, December 16, 2015 11:36 AM
> >To: Paul Benedict; Brian Goetz
> >Cc: valhalla-dev
> >Subject: Re: Any::isNull check
> >
> >The question is whenever you have several .class for one generic class or if
> >there is only one fat .class and multiple classes (or something lighter) at
> >runtime.
> >
> >If you have one .class, the compiler can not do something for you.
> >
> >regards,
> >Remi
> >

More information about the valhalla-dev mailing list