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