[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