RFR(S): 8240795: [REDO] 8238384 CTW: C2 compilation fails with "assert(store != load->find_exact_control(load->in(0))) failed: dependence cycle found"

Roland Westrelin rwestrel at redhat.com
Tue Mar 17 16:41:02 UTC 2020


http://cr.openjdk.java.net/~roland/8240795/webrev.00/

Change is identical to initial change except for macroArrayCopy.cpp:

https://hg.openjdk.java.net/jdk/jdk/rev/1d4d4c9d03c2#l5.1

That change is wrong because it attaches the new membar to the wrong
slice:
C->get_alias_index(ac->_dest_type)
instead of:
C->get_alias_index(ac->_dest_type->add_offset(Type::OffsetBot)->is_ptr())

Anyway, thinking more about this, I don't think the change to
macroArrayCopy.cpp in the initial patch was needed at all.

ac->_dest_type != TypeOopPtr::BOTTOM && adr_type != ac->_dest_type

should only be true with zeroing elimination. Then adr_type is raw
memory. So there can't be any load from memory slice ac->_dest_type
before the membar and no risk of a missed anti-dependence.

Roland.



More information about the hotspot-compiler-dev mailing list