RFR: 8332528: Generate code in SwitchBootstraps.generateTypeSwitch that require fewer adaptations [v3]

Claes Redestad redestad at openjdk.org
Tue May 21 12:28:02 UTC 2024


On Tue, 21 May 2024 09:01:32 GMT, Claes Redestad <redestad at openjdk.org> wrote:

>> We can fold the call to `Objects.checkIndex` into the code generated in generateTypeSwitchSkeleton instead of doing so by filtering the MH argument. This loads 9 less classes (of which 8 generated LFs and Species classes) on a minimal test, while being neutral on a throughput sanity test:
>> 
>> 
>> Name                   Cnt  Base   Error   Test   Error  Unit  Change
>> SwitchSanity.switchSum  15 8,162 ± 0,117  8,152 ± 0,131 ns/op   1,00x (p = 0,800 )
>>   * = significant
>>   ```
>> 
>> A few additional optimizations includes moving some seldom used `findStatic` calls to a holder. All in all this means a reduction by 22M cycles to bootstrap a trivial switch expression on my M1.
>
> Claes Redestad has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add type switch to HelloClasslist

[f04d78e](https://github.com/openjdk/jdk/pull/19307/commits/f04d78ea53ed0074026311f82eb0d4eafee3438d) passed tier1-3 testing

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

PR Comment: https://git.openjdk.org/jdk/pull/19307#issuecomment-2122519106


More information about the core-libs-dev mailing list