Relates :
|
Node::eqv_uncast() checks if two nodes are equal (equivalent) behind casts. It's used in many places concerning lock elimination. The trouble is if the actual nodes are behind GC barriers, and we get the same node behind two different GC barrier nodes, this would return false negative. We have seen a bad case of this with Shenandoah, where lock elimination was subtly thrown off by this, which led to eliminated locks not re-locked properly during deoptimization.
|