RFR: 8282664: Unroll by hand StringUTF16 and StringLatin1 polynomial hash loops [v14]

Claes Redestad redestad at openjdk.org
Wed Dec 21 17:04:07 UTC 2022


On Wed, 21 Dec 2022 01:02:35 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

>> Claes Redestad has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 64 commits:
>> 
>>  - Pass the constant mode node through, removing need for all but one instruct declarations
>>  - FLAG_SET_DEFAULT
>>  - Merge branch 'master' into 8282664-polyhash
>>  - Merge branch 'master' into 8282664-polyhash
>>  - Missing & 0xff in StringLatin1::hashCode
>>  - Qualified guess on shenandoahSupport fix-up
>>  - Whitespace
>>  - Final touch-ups, restored 2-stride with dependency chain breakage
>>  - Minor cleanup
>>  - Revert accidental ModuleHashes change
>>  - ... and 54 more: https://git.openjdk.org/jdk/compare/8dfb6d76...c9e7c561
>
> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 3420:
> 
>> 3418:   arrays_hashcode_elload(tmp3, Address(ary1, index, Address::times(elsize), -elsize), eltype, is_string_hashcode);
>> 3419:   addl(result, tmp3);
>> 3420:   jmp(END);
> 
> This jmp can be removed.

Ok, special-cased for `value.length == 2`, removed the superfluous `jmp`, and committed your patch to implement the vectorization for `short`s and signed `byte`s.

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

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


More information about the hotspot-dev mailing list