On Fri, 17 Feb 2023 17:31:09 GMT, Eirik Bjorsnos <d...@openjdk.org> wrote:
> This PR suggests we speed up Character.toUpperCase and Character.toLowerCase > for latin1 code points by applying the 'oldest ASCII trick in the book'. > > This takes advantage of the fact that latin1 uppercase code points are always > 0x20 lower than their lowercase (with the exception of two code points which > uppercase out of latin1). > > To verify the correctness of the new implementation, the test > `Latin1CaseConversion` is added with an exhaustive verification of > toUpperCase/toLowerCase for all latin1 code points. > > The implementation needs to balance the performance of the various ranges in > latin1. An effort has been made to favour operations on ASCII code points, > without causing excessive regression for higher code points. > > Performance is benchmarked for 7 chosen sample code points, each representing > a range or a special-case. Results in the first comment. Looks good to me. I'd rather not use "case folding", as to me it implies "normalizing" but this is simply lowercasing/uppercasing. test/jdk/java/lang/Character/Latin1CaseFolding.java line 31: > 29: /** > 30: * @test > 31: * @summary Provides exchaustive verification of Character.toUpperCase > and Character.toLowerCase typo: "exhaustive"? ------------- PR: https://git.openjdk.org/jdk/pull/12623