[jdk16] RFR: 8258272: LoadVectorMaskedNode can't be replaced by zero con [v2]
Christian Hagedorn
chagedorn at openjdk.java.net
Tue Jan 12 18:24:00 UTC 2021
On Tue, 12 Jan 2021 16:35:29 GMT, Nils Eliasson <neliasso at openjdk.org> wrote:
>> A test fails for this code:
>>
>> byte [] src = new byte[0];
>> byte [] dest = Arrays::copy_of(src);
>>
>> This is transformed to something like:
>> byte [] src = new byte[0];
>> byte [] dest = new byte[0];
>> System.arraycopy(src, 0, dest, 0, src.lenght());
>>
>> This causes a problem in LoadNode::Value for the new LoadVectorMasked nodes. LoadNode::Value sees that the load will always load a zero - and will try to replace itself with a zero constant. That doesn't work for the LoadVectorMaskedNodes currently.
>>
>> This patch adds a check to the zero-optimization to pass on vector types.
>>
>> This patch is currently missing a new test. Since we are nearing the end of bugfixing in JDK16 I decided to publish the fix first so that any discussion of the fix can be had now.
>
> Nils Eliasson has updated the pull request incrementally with one additional commit since the last revision:
>
> add test and update fix
Looks good!
-------------
Marked as reviewed by chagedorn (Reviewer).
PR: https://git.openjdk.java.net/jdk16/pull/105
More information about the hotspot-compiler-dev
mailing list