RFR (S): 8161334: C2: Cast nodes hinder memory alias analysis
vladimir.x.ivanov at oracle.com
Tue Feb 12 22:32:11 UTC 2019
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
More information about the hotspot-compiler-dev