8254314: Shenandoah: null checks in c2 should not skip over native load barrier
Reviewed-by: rkennke
This commit is contained in:
parent
c73a0fffaa
commit
a2bb4c6014
@ -1058,10 +1058,12 @@ Node* ShenandoahBarrierSetC2::ideal_node(PhaseGVN* phase, Node* n, bool can_resh
|
||||
if (n->Opcode() == Op_CmpP) {
|
||||
Node* in1 = n->in(1);
|
||||
Node* in2 = n->in(2);
|
||||
if (in1->bottom_type() == TypePtr::NULL_PTR) {
|
||||
if (in1->bottom_type() == TypePtr::NULL_PTR &&
|
||||
(in1->Opcode() != Op_ShenandoahLoadReferenceBarrier || !((ShenandoahLoadReferenceBarrierNode*)in1)->is_native())) {
|
||||
in2 = step_over_gc_barrier(in2);
|
||||
}
|
||||
if (in2->bottom_type() == TypePtr::NULL_PTR) {
|
||||
if (in2->bottom_type() == TypePtr::NULL_PTR &&
|
||||
(in2->Opcode() != Op_ShenandoahLoadReferenceBarrier || !((ShenandoahLoadReferenceBarrierNode*)in2)->is_native())) {
|
||||
in1 = step_over_gc_barrier(in1);
|
||||
}
|
||||
PhaseIterGVN* igvn = phase->is_IterGVN();
|
||||
|
Loading…
x
Reference in New Issue
Block a user