RFR: 8342601: AArch64: Micro-optimize bit shift in copy_memory

Dean Long dlong at openjdk.org
Fri Oct 18 23:36:40 UTC 2024


On Fri, 18 Oct 2024 18:35:02 GMT, Chad Rakoczy <duke at openjdk.org> wrote:

> [JDK-8342601](https://bugs.openjdk.org/browse/JDK-8342601)
> 
> Fix minor inefficiency in `copy_memory` by adding check before doing bit shift to see if we are able to do a move instruction instead. Change is low risk because of the low complexity of the change
> 
> Ran array copy and tier 1 on aarch64 machine
> 
> Test summary
> ==============================
>    TEST                                              TOTAL  PASS  FAIL ERROR   
>    jtreg:test/hotspot/jtreg/compiler/arraycopy          49    49     0     0   
> ==============================
> 
> ==============================
> Test summary
> ==============================
>    TEST                                              TOTAL  PASS  FAIL ERROR   
>    jtreg:test/hotspot/jtreg:tier1                     2591  2591     0     0   
>    jtreg:test/jdk:tier1                               2436  2436     0     0   
>    jtreg:test/langtools:tier1                         4577  4577     0     0   
>    jtreg:test/jaxp:tier1                                 0     0     0     0   
>    jtreg:test/lib-test:tier1                            34    34     0     0   
> ==============================

Please quantify the performance improvement, if any.  I would expect this to make 0 difference, but if it does, then perhaps we should consider checking for a shift of 0 inside `lsr`?

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

PR Comment: https://git.openjdk.org/jdk/pull/21589#issuecomment-2423370781


More information about the hotspot-compiler-dev mailing list