RFR: 8278302: [s390] Implement fast-path for ASCII-compatible CharsetEncoders
Lutz Schmidt
lucy at openjdk.java.net
Tue Jan 11 16:28:28 UTC 2022
On Tue, 7 Dec 2021 11:20:05 GMT, Lutz Schmidt <lucy at openjdk.org> wrote:
> This pull request contains the s390x variant of the fast-path for ASCII-compatible CharsetEncoders.
>
> The intrinsic implementation is pretty much similar to that of PPC64. Compared to the previously existing intrinsic implementation, changes to program logic are minimal. There is a new match rule for ascii strings and the bit mask used to detect invalid bits in the string characters is set depending on the target charset: 0xff00 for ISO, 0xff80 for ascii.
>
> **Request:** SAP does not maintain a full build and test infrastructure for s390x anymore. Could somebody please test this PR on s390x? At least build and tier1 tests, the more the better. Thank you!
>
> With my private testing (some microbenchmarks, some SPEC benchmarks) I could not find any issues. With the fast-path active I see a 2x, sometime 2.5x, improvement of CharsetEncodeDecode.encode.
>
> **Without the fast-path patch:**
>
> CharsetEncodeDecode.encode 16384 UTF-8 avgt 30 16.350 ± 0.067 us/op
> CharsetEncodeDecode.encode 16384 BIG5 avgt 30 15.972 ± 0.136 us/op
> CharsetEncodeDecode.encode 16384 ISO-8859-15 avgt 30 14.372 ± 0.110 us/op
> CharsetEncodeDecode.encode 16384 ASCII avgt 30 14.287 ± 0.051 us/op
>
>
> **With the fast-path patch:**
>
> CharsetEncodeDecode.encode 16384 UTF-8 avgt 30 6.833 ± 0.064 us/op
> CharsetEncodeDecode.encode 16384 BIG5 avgt 30 8.195 ± 0.059 us/op
> CharsetEncodeDecode.encode 16384 ISO-8859-15 avgt 30 6.387 ± 0.149 us/op
> CharsetEncodeDecode.encode 16384 ASCII avgt 30 6.321 ± 0.049 us/op
Thank you for testing! The results don't look good, though. I'll have to find out what the test expects and why my code doesn't deliver the expected. Will get back to you asap.
Lutz
-------------
PR: https://git.openjdk.java.net/jdk/pull/6738
More information about the hotspot-compiler-dev
mailing list