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!

Best,
Tobias

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