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

Aleksey Shipilev aleksey.shipilev at oracle.com
Mon Feb 15 13:17:33 UTC 2016


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

-------------- 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/20160215/86bde916/signature.asc>


More information about the hotspot-compiler-dev mailing list