RFR: 8357726: Improve C2 to recognize counted loops with multiple casts in trip counter
Emanuel Peter
epeter at openjdk.org
Wed Jun 4 08:15:18 UTC 2025
On Wed, 4 Jun 2025 08:04:00 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:
>>> Thanks for your suggestion! Sounds better to me. How about changing the title to Improve C2 to recognize counted loops with multiple casts in trip counter ?
>>
>> @XiaohongGong Sounds good too :)
>
> Hi @eme64 , I'v updated the IR test and JMH based on your comments. Could you please help review whether it's fine to you. Thanks for all your suggestion!
>
> Following shows the performance data of the new JMH test on Grace (the performance gain is almost the same on my x64 machine):
>
> Benchmark Mode Cnt limit Unit Before Error (99.9%) After Error (99.9%) Gain
> CountedLoopCastIV.loop_iv_int thrpt 30 1024 ops/s 1225620.536 39505.158362 5778120.132 4781.602088 4.71
> CountedLoopCastIV.loop_iv_int thrpt 30 1536 ops/s 830600.832 14758.561182 3839404.338 3362.727083 4.62
> CountedLoopCastIV.loop_iv_int thrpt 30 2048 ops/s 618114.174 36999.511727 2890853.495 416.969862 4.67
> CountedLoopCastIV.loop_iv_long thrpt 30 1024 ops/s 1063902.078 4616.608855 1314828.963 1267.470199 1.23
> CountedLoopCastIV.loop_iv_long thrpt 30 1536 ops/s 714538.178 630.085477 870801.472 753.347684 1.21
> CountedLoopCastIV.loop_iv_long thrpt 30 2048 ops/s 536724.086 131.313178 652775.363 539.107806 1.21
>
>
> The error term is larger as before. But I don't think this is caused by the large variance of loop iterations. Does the new benchmark look fine to you? Thanks!
@XiaohongGong Nice, thanks for the updates! Especially the IR rules and reduction in JMH benchmark variance, excellent :)
Please ping me again once you have addressed my comment above, and then I can run some internal testing for you!
-------------
PR Comment: https://git.openjdk.org/jdk/pull/25539#issuecomment-2939057374
More information about the hotspot-compiler-dev
mailing list