RFR (S) 8131782: C1 Class.cast optimization breaks when Class is loaded from static final
Aleksey Shipilev
aleksey.shipilev at oracle.com
Fri Jul 24 09:50:26 UTC 2015
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20150724/03d1e423/signature-0001.asc>
More information about the hotspot-compiler-dev
mailing list