RFR: 8263781: C2: Cannot hoist independent load above arraycopy

Richard Reingruber rrich at openjdk.java.net
Thu Mar 18 09:42:03 UTC 2021


This change adds the following comment to the method LoadNode::find_previous_arraycopy()

// Find an arraycopy ac that produces the memory state represented by parameter mem.
// Return ac if
// (a) can_see_stored_value=true  and ac must have set the value for this load or if
// (b) can_see_stored_value=false and ac could have set the value for this load or if
// (c) can_see_stored_value=false and ac cannot have set the value for this load.
// In (c) also change the parameter mem to the memory input of ac.
// Otherwise return NULL.

It also repairs case (c) to let it return ac again as this was lost in previous refactoring (see issue).

The fix passed our CI testing: JCK and JTREG, also in Xcomp mode, SPECjvm2008, SPECjbb2015, Renaissance Suite,
SAP specific tests with fastdebug and release builds on all platforms

-------------

Commit messages:
 - 8263781: C2: Cannot hoist independent load above arraycopy

Changes: https://git.openjdk.java.net/jdk/pull/3070/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3070&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8263781
  Stats: 8 lines in 1 file changed: 6 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3070.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3070/head:pull/3070

PR: https://git.openjdk.java.net/jdk/pull/3070


More information about the hotspot-compiler-dev mailing list