RFR: 8365205: C2: Optimize popcount value computation using knownbits [v10]
    Hannes Greule 
    hgreule at openjdk.org
       
    Fri Sep 19 11:19:13 UTC 2025
    
    
  
On Fri, 19 Sep 2025 09:49:16 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 TestPopCountValueTransforms.java
src/hotspot/share/opto/countbitsnode.cpp line 123:
> 121: // we have at least and at most.
> 122: // From the definition of KnownBits, we know:
> 123: //   zeros: Indicates which bits must be 0: ones[i] =1 -> t[i]=0
I'm a bit confused by this, is ones[i] mixed up with zeros[i]? I.e., t[i]=0 if zeros[i]=1
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/27075#discussion_r2362569002
    
    
More information about the hotspot-compiler-dev
mailing list