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