RFR: 8274242: Implement fast-path for ASCII-compatible CharsetEncoders on x86 [v5]

Claes Redestad claes.redestad at oracle.com
Tue Sep 28 12:39:54 UTC 2021

Yes, this was spotted and fixed already. Annoyingly the test I added didn't detect this so GHA was green, but it failed some tier2 tests on aarch64. I added extra safeguards by predicating matching the encode_iso_array instructions on the node being !ascii, which will cause C2 to report an error rather than silently using the iso variant for ascii-only nodes.

Hämta Outlook för Android<https://aka.ms/AAb9ysg>
From: core-libs-dev <core-libs-dev-retn at openjdk.java.net> on behalf of Volker Simonis <simonis at openjdk.java.net>
Sent: Tuesday, September 28, 2021 1:53:22 PM
To: core-libs-dev at openjdk.java.net <core-libs-dev at openjdk.java.net>; hotspot-compiler-dev at openjdk.java.net <hotspot-compiler-dev at openjdk.java.net>; nio-dev at openjdk.java.net <nio-dev at openjdk.java.net>
Subject: Re: RFR: 8274242: Implement fast-path for ASCII-compatible CharsetEncoders on x86 [v5]

On Tue, 28 Sep 2021 10:01:43 GMT, Claes Redestad <redestad at openjdk.org> wrote:

>> Not too much work. I recently introduced platform-specific `matcher_*.hpp` files, so since then adding a boolean constant is easy (no need to muck with the .ad files).
> Does the changes in 9800a99 resolve your concerns?

In principle yes, but shouldn't the condition read:

if (!Matcher::match_rule_supported(Op_EncodeISOArray) || !Matcher::supports_encode_ascii_array) return false;

I.e. the intrinisc is supported if both conditions are true and not supported if either one of them is false?


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

More information about the core-libs-dev mailing list