[jdk21u] RFR: 8317121: vector_masked_load instruction is moved too early after JDK-8286941

Vladimir Kozlov kvn at openjdk.org
Tue Oct 3 20:25:13 UTC 2023


Clean backport for JDK-8317121.

[JDK-8286941](https://bugs.openjdk.org/browse/JDK-8286941) changed how masked vector operations are created and processed. It calls LoadNode::Ideal() which tries to find best place in code for it.
Unfortunately some places do not expect to have vector access to modified memory.
In LoadNode::find_previous_arraycopy() the call to ArrayCopyNode::modifies() assumes that it access only one element and did not take into account that a vector may access wider memory.
The same issue exists with Unsafe mismatching (bigger size) access.

The fix is to take into account size of memory access.

New regression test is added which show the issue. Verified with original Repro.java test case.

Tested tier1-7. xcomp, stress.

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

Commit messages:
 - Backport cfabcbf85837e97bdd6c9e4e06e875ecbaa70084

Changes: https://git.openjdk.org/jdk21u/pull/226/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk21u&pr=226&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8317121
  Stats: 125 lines in 2 files changed: 123 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk21u/pull/226.diff
  Fetch: git fetch https://git.openjdk.org/jdk21u.git pull/226/head:pull/226

PR: https://git.openjdk.org/jdk21u/pull/226


More information about the jdk-updates-dev mailing list