RFR: 8365205: C2: Optimize popcount value computation using knownbits [v11]

Hannes Greule hgreule at openjdk.org
Thu Sep 25 17:56:15 UTC 2025


On Fri, 19 Sep 2025 20:44:54 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> This patch optimizes PopCount value transforms using KnownBits information.
>> Following are the results of the micro-benchmark included with the patch
>> 
>> 
>> 
>> System: 13th Gen Intel(R) Core(TM) i3-1315U
>> 
>> Baseline:
>> Benchmark                                      Mode  Cnt       Score   Error  Units
>> PopCountValueTransform.LogicFoldingKerenLong  thrpt    2  215460.670          ops/s
>> PopCountValueTransform.LogicFoldingKerenlInt  thrpt    2  294014.826          ops/s
>> 
>> Withopt:
>> Benchmark                                      Mode  Cnt       Score   Error  Units
>> PopCountValueTransform.LogicFoldingKerenLong  thrpt    2  389978.082          ops/s
>> PopCountValueTransform.LogicFoldingKerenlInt  thrpt    2  417261.583          ops/s
>> 
>> 
>> Kindly review and share your feedback.
>> 
>> Best Regards,
>> Jatin
>
> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Update countbitsnode.cpp

Looks good to me now, although I'm not exactly sure about the semantics of widen and whether `Type::WidenMax` is the right choice here. Someone else has to look at that.

Thanks for the work!

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

Marked as reviewed by hgreule (Committer).

PR Review: https://git.openjdk.org/jdk/pull/27075#pullrequestreview-3268869427


More information about the hotspot-compiler-dev mailing list