[13] 8224539: C2 compilation fails during ArrayCopyNode optimizations with assert(i < _max) failed: oob: i=1, _max=1

Tobias Hartmann tobias.hartmann at oracle.com
Wed May 22 14:41:36 UTC 2019


please review the following patch:

The fix for JDK-8212243 [1] changed the implementation of the ArrayCopyNode optimizations to access
the src/dst adr nodes to get the base:

Now it can happen that either one is top if the array size is known and the offset is out of bounds.
For example, with incremental inlining we might not know the constant array size once the
ArrayCopyNode is created but only once we execute ideal transformations (see regression test). The
ArrayCopyNode will eventually be removed because the range checks fail but control is still valid at
the time when we hit the assert.

Tested with regression test and relevant tiers (running).


[1] https://bugs.openjdk.java.net/browse/JDK-8212243

More information about the hotspot-compiler-dev mailing list