[jdk21u] Integrated: 8317121: vector_masked_load instruction is moved too early after JDK-8286941
Vladimir Kozlov
kvn at openjdk.org
Wed Oct 4 16:58:06 UTC 2023
On Tue, 3 Oct 2023 19:44:21 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> 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.
This pull request has now been integrated.
Changeset: e76be619
Author: Vladimir Kozlov <kvn at openjdk.org>
URL: https://git.openjdk.org/jdk21u/commit/e76be61923d0f0e4d828debc3839aa366a793fcb
Stats: 125 lines in 2 files changed: 123 ins; 0 del; 2 mod
8317121: vector_masked_load instruction is moved too early after JDK-8286941
Reviewed-by: shade, vlivanov
Backport-of: cfabcbf85837e97bdd6c9e4e06e875ecbaa70084
-------------
PR: https://git.openjdk.org/jdk21u/pull/226
More information about the jdk-updates-dev
mailing list