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