RFR (S) 8131782: C1 Class.cast optimization breaks when Class is loaded from static final

Dean Long dean.long at oracle.com
Fri Jul 24 20:19:36 UTC 2015

I can push it for you.  Do you need another review?


On 7/24/2015 2:50 AM, Aleksey Shipilev wrote:
> On 21.07.2015 13:05, Aleksey Shipilev wrote:
>> On 21.07.2015 00:14, John Rose wrote:
>>> On Jul 20, 2015, at 6:52 AM, Aleksey Shipilev <aleksey.shipilev at oracle.com> wrote:
>>>> On the road from Unsafe to VarHandles lies a small deficiency in C1
>>>> Class.cast/isInstance optimization: the canonicalizer folds constant
>>>> class perfectly when it is coming from "inlined" constant, but not from
>>>> static final, because the constant "shapes" are different:
>>>>   https://bugs.openjdk.java.net/browse/JDK-8131782
>>> I suggest a deeper fix, to the factory that produces the oddly formatted constant.
>>> That may help with other, similar constant folding problems.
>> All right, let's do that!
>>    http://cr.openjdk.java.net/~shade/8131782/webrev.02/
>> I respinned it through JRPT and my targeted benchmarks, and it performs
>> the same as previous patch.
> Any other reviews pending? If not, please sponsor!
> Thanks,
> -Aleksey

More information about the hotspot-compiler-dev mailing list