# HG changeset patch # Parent 42a3a8941418821813e75f704645bcc0c92b2a6c diff -r 42a3a8941418 -r 6a3f032f7d66 src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp --- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp Thu Oct 17 13:14:48 2019 -0400 +++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp Thu Oct 17 21:37:28 2019 +0200 @@ -1733,13 +1733,11 @@ if (visited.test_set(in->_idx)) { return NULL; } + tty->print_cr("get_load_addr: %s", NodeClassNames[in->Opcode()]); switch (in->Opcode()) { - case Op_Proj: - return get_load_addr(phase, visited, in->in(0)); case Op_CastPP: case Op_CheckCastPP: case Op_DecodeN: - case Op_EncodeP: return get_load_addr(phase, visited, in->in(1)); case Op_LoadN: case Op_LoadP: @@ -1753,6 +1751,7 @@ // Those instructions would just have stored a different // value into the field. No use to attempt to fix it at this point. return phase->igvn().zerocon(T_OBJECT); + /* case Op_CMoveP: case Op_CMoveN: { Node* t = get_load_addr(phase, visited, in->in(CMoveNode::IfTrue)); @@ -1764,30 +1763,13 @@ // Ambiguity. return phase->igvn().zerocon(T_OBJECT); } - case Op_Phi: { - Node* addr = NULL; - for (uint i = 1; i < in->req(); i++) { - Node* addr1 = get_load_addr(phase, visited, in->in(i)); - if (addr == NULL) { - addr = addr1; - } - if (addr != addr1) { - return phase->igvn().zerocon(T_OBJECT); - } - } - return addr; - } + */ case Op_ShenandoahLoadReferenceBarrier: return get_load_addr(phase, visited, in->in(ShenandoahLoadReferenceBarrierNode::ValueIn)); + /* case Op_ShenandoahEnqueueBarrier: return get_load_addr(phase, visited, in->in(1)); - case Op_CallDynamicJava: - case Op_CallLeaf: - case Op_CallStaticJava: - case Op_ConN: - case Op_ConP: - case Op_Parm: - return phase->igvn().zerocon(T_OBJECT); + */ default: #ifdef ASSERT fatal("Unknown node in get_load_addr: %s", NodeClassNames[in->Opcode()]);