[9] RFR(S): 8179678: ArrayCopy with same src and dst can cause incorrect execution or compiler crash

Roland Westrelin rwestrel at redhat.com
Tue May 16 12:22:47 UTC 2017


Thanks for looking a this, Tobias.

> But in ArrayCopyNode::can_replace_dest_load_with_src_load() you return
> false, if src == dst. Why is that?

See test2(): src[0] is the destination of the copy, it is replaced by a
read of the source: src[0] which is the destination of the copy... and
the compiler is sent into an infinite loop.

This said, this test is too conservative. I've reworked it.

> And in line 733, shouldn't we pass must_modify = false to detect the
> case we the array copy _may_ modify the source we would load?

Yes, you're right. Thanks for spotting that.

New webrev:

http://cr.openjdk.java.net/~roland/8179678/webrev.01/

Roland.


More information about the hotspot-compiler-dev mailing list