RFR: 8256431: [PPC64] Implement Base64 encodeBlock() for Power64-LE [v4]
Corey Ashford
github.com+51754783+coreyashford at openjdk.java.net
Thu Dec 10 19:24:59 UTC 2020
On Thu, 10 Dec 2020 10:00:38 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:
>> Corey Ashford has updated the pull request incrementally with one additional commit since the last revision:
>>
>> stubGenerator_ppc.cpp: Improve performance of the the main loop of encode
>>
>> The original code used the saturated subtract algorithm, but because Power
>> has a vperm instruction which can handle a 32-byte lookup, we can utilize
>> it to do a 64-byte lookup in four instructions, saving two instructions
>> from the original six. This yields a 15% performance improvement for large
>> buffers.
>
> src/hotspot/cpu/ppc/stubGenerator_ppc.cpp line 4185:
>
>> 4183: 0b00111111, 0b00111100, 0b00110000, 0b00000000 ) };
>> 4184:
>> 4185: static const __vector unsigned char base64_00_15 = {
>
> I don't really like so many individual arrays of constants. They could get put into one larger block of memory and accessed by lvx with offset.
Interesting idea! The point there would be to save the initialization time of loading the address constants? Otherwise, it has a negative affect on code readability.
-------------
PR: https://git.openjdk.java.net/jdk/pull/1245
More information about the hotspot-compiler-dev
mailing list