RFR (S) 8149813: Move trusted final field handling from C2 LoadNode::Value to shared code

Tobias Hartmann tobias.hartmann at oracle.com
Mon Feb 15 13:27:45 UTC 2016

Hi Aleksey,

this looks good to me (not a reviewer). Thanks for cleaning up string opts!


On 15.02.2016 14:17, Aleksey Shipilev wrote:
> Hi,
> I would like us to consider moving out the "trusted fields" logic from
> C2-ish LoadNode::Value to a shared code:
>   https://bugs.openjdk.java.net/browse/JDK-8149813
> Webrev:
>   http://cr.openjdk.java.net/~shade/8149813/webrev.00/
> With this patch, primitive boxes and Strings are handled in the shared
> code, where all other special cases are listed. Not only this is
> cleaner, it also lets C1 to constant fold those cases too:
>   http://cr.openjdk.java.net/~shade/8149813/notes.txt
> Some changes were neede in StringOpts, because it used to rely on
> constant oop present in a graph after LoadNode::Value -- which was
> inconsistent with the way we pull get_constant_coder anyway.
> Testing: JPRT -testset hotspot, microbenchmarks, eyeballing assembly
> Cheers,
> -Aleksey

More information about the hotspot-compiler-dev mailing list