Integrated: 8317121: vector_masked_load instruction is moved too early after JDK-8286941

Vladimir Kozlov kvn at openjdk.org
Tue Oct 3 18:22:03 UTC 2023


On Mon, 2 Oct 2023 19:17:40 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> [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.
> 
> Tested tier1-5. xcomp, stress. Testing tier6-7 in progress.

This pull request has now been integrated.

Changeset: cfabcbf8
Author:    Vladimir Kozlov <kvn at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/cfabcbf85837e97bdd6c9e4e06e875ecbaa70084
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

Co-authored-by: Vladimir Ivanov <vlivanov at openjdk.org>
Co-authored-by: Tobias Hartmann <thartmann at openjdk.org>
Co-authored-by: Dean Long <dlong at openjdk.org>
Reviewed-by: thartmann, vlivanov, epeter

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

PR: https://git.openjdk.org/jdk/pull/16015


More information about the hotspot-compiler-dev mailing list