RFR: 8311906: Improve robustness of String constructors with mutable array inputs [v12]

Claes Redestad redestad at openjdk.org
Mon Nov 27 18:08:19 UTC 2023


On Mon, 27 Nov 2023 17:28:34 GMT, Roger Riggs <rriggs at openjdk.org> wrote:

>> src/hotspot/cpu/x86/macroAssembler_x86.cpp line 8584:
>> 
>>> 8582:     evpcmpuw(mask1, tmp1Reg, tmp2Reg, Assembler::le, Assembler::AVX_512bit);
>>> 8583:     kortestdl(mask1, mask1);
>>> 8584:     jcc(Assembler::carryClear, reset_for_copy_tail);
>> 
>> Suggestion:
>> 
>>     jccb(Assembler::carryClear, reset_for_copy_tail);
>> 
>> 
>> and here:
>> 
>> https://github.com/openjdk/jdk/blob/d201344b631bf2cc9fb1990874fc7d42d523eeab/src/hotspot/cpu/x86/macroAssembler_x86.cpp#L8590
>
> Thanks for the suggestions to use byte offset branches.

Seems reasonable. AFAICT these suggestions are all in the AVX-512-code that is soft disabled by the need to supply `-XX:AVX3Threshold=0`. We don't do any systematic performance testing of those (maybe we should?), so some manual verification is necessary.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16425#discussion_r1406554229


More information about the core-libs-dev mailing list