Integrated: 8277846: Implement fast-path for ASCII-compatible CharsetEncoders on ppc64

Martin Doerr mdoerr at openjdk.java.net
Tue Nov 30 09:25:15 UTC 2021


On Thu, 25 Nov 2021 15:33:30 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:

> PPC64 port of 8274242: Implement fast-path for ASCII-compatible CharsetEncoders on x86
> I moved the `encode_iso_array` implementation into `C2_MacroAssembler` and reused it for the new ASCII node. The algorithm is unchanged. We only need to change the mask because (non-extended) ASCII uses 7 bit (also see x86 implementation).
> 
> 'micro:CharsetEncodeDecode' benchmark results without intrinsic on Power9:
> 
> 
> Benchmark                   (size)       (type)  Mode  Cnt    Score   Error  Units
> CharsetEncodeDecode.encode   16384        UTF-8  avgt   30   14.530 ± 0.012  us/op
> CharsetEncodeDecode.encode   16384         BIG5  avgt   30   15.359 ± 0.014  us/op
> CharsetEncodeDecode.encode   16384  ISO-8859-15  avgt   30   14.256 ± 0.019  us/op
> CharsetEncodeDecode.encode   16384        ASCII  avgt   30   14.237 ± 0.012  us/op
> 
> 
> With intrinsic:
> 
> 
> Benchmark                   (size)       (type)  Mode  Cnt    Score   Error  Units
> CharsetEncodeDecode.encode   16384        UTF-8  avgt   30    5.085 ± 0.016  us/op
> CharsetEncodeDecode.encode   16384         BIG5  avgt   30    5.905 ± 0.023  us/op
> CharsetEncodeDecode.encode   16384  ISO-8859-15  avgt   30    4.795 ± 0.023  us/op
> CharsetEncodeDecode.encode   16384        ASCII  avgt   30    4.798 ± 0.013  us/op

This pull request has now been integrated.

Changeset: a5f2a58b
Author:    Martin Doerr <mdoerr at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/a5f2a58ba4ac25f4bd66f1f1f4c036a4f0024229
Stats:     78 lines in 4 files changed: 46 ins; 14 del; 18 mod

8277846: Implement fast-path for ASCII-compatible CharsetEncoders on ppc64

Reviewed-by: lucy, mbaesken

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

PR: https://git.openjdk.java.net/jdk/pull/6565


More information about the hotspot-compiler-dev mailing list