[13] RFR (S): 8161334: C2: Cast nodes hinder memory alias analysis

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Feb 12 22:32:11 UTC 2019


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

The following IR is produced for the slow case reported in the bug:

   B = CastPP (DecodeN ...)                   // ...$C:NotNull
   S = StoreI M (AddP (            B) #off) V // ...$C:NotNull
   L = LoadI  S (AddP (CheckCastPP B) #off)   // ...$C:NotNull:exact

MemNode::can_see_stored_value() can't prove S & L access the same 
location since AddPs are different (since base nodes differ). There's a 
special case there, but only when Allocate is a base.

Proposed patch generalizes existing Allocate case to the case when both 
base & offset are known to be the same.

Testing: hs-precheckin-comp, tier1-5

Best regards,
Vladimir Ivanov


More information about the hotspot-compiler-dev mailing list