RFR: 8290917: x86: Memory-operand arithmetic instructions have too low costs [v2]

Quan Anh Mai duke at openjdk.org
Thu Sep 15 09:18:48 UTC 2022


On Wed, 14 Sep 2022 16:33:41 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

>> @sviswa7 Thanks a lot for your review, I have reverted that change. I don't understand why, though, it does not seem that the bottleneck is in the predecoder.
>
> @merykitty Thanks for reverting those changes. Could you please also add jmh tests for the following:
>  1) AndL with 255
>  2) AndL with 65535
>  3) DivL by 10
> For 1) and 2) we are changing the instruction from q version to l version, so want to make sure the performance is at par atleast.
> For 3) it will be good to check that the compiler is optimizing divide by 10 for long data type as well now.

@sviswa7 Thanks for your reviews, I have addressed those in the last commits, the benchmark results are as follow:

                                                    Before            After
    Benchmark                      Mode  Cnt    Score    Error    Score    Error  Units
    BasicRules.add_mem_con         avgt   15  203.470 ±  8.955  202.771 ±  2.867  ns/op
    BasicRules.andL_rReg_imm255    avgt   15  183.892 ±  2.314  185.008 ±  2.642  ns/op
    BasicRules.andL_rReg_imm65535  avgt   15  183.854 ±  2.293  184.849 ±  2.668  ns/op
    BasicRules.divL_10             avgt   15  643.210 ± 10.536  645.040 ± 10.014  ns/op

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

PR: https://git.openjdk.org/jdk/pull/9791


More information about the hotspot-compiler-dev mailing list