[9] RFR (XXS): 8158546: C1 compilation fails with "Constant field loads are folded during parsing"

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Fri Jan 27 17:02:30 UTC 2017


http://cr.openjdk.java.net/~vlivanov/8158546/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8158546

The problematic assert checks that constant folding of field loads 
happens only during parsing. There are some configurations through when 
it's not the case: PatchALot, ScavengeRootsInCode < 2.

But there's one case missing (for static fields): when holder class can 
be in process of initialization during parsing, but it finishes by the 
time canonicalizer kicks in.

I asked to add the assert as part of JDK-8150102 [1] to raise our 
awareness when LoadField case is needed in 
Canonicalizer::do_ArrayLength(). IMO the assert did its job and it's 
time to remove it.

Thanks!

Best regards,
Vladimir Ivanov

[1] https://bugs.openjdk.java.net/browse/JDK-8150102


More information about the hotspot-compiler-dev mailing list