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

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Feb 15 19:06:55 UTC 2016

Yes, looks good.


On 2/15/16 5:17 AM, 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