RFR: 8324649: Shenandoah: replace implementation of free set [v53]

Kelvin Nilsen kdnilsen at openjdk.org
Mon May 6 21:16:10 UTC 2024


On Fri, 3 May 2024 15:59:14 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

>> Kelvin Nilsen has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 114 commits:
>> 
>>  - Merge remote-tracking branch 'origin/master' into restructure-free-set
>>  - Merge branch 'openjdk:master' into master
>>  - Merge branch 'openjdk:master' into master
>>  - Remove unnecessary call to update_watermark
>>  - Assert progress on find_next and find_prev
>>  - Simplify partition_membership_name by code reuse
>>  - Simplify by combining implemnetations of shrink_interval functions
>>  - Fix NumPartition type
>>    
>>    Beautify the code by changing type of NumPartitions and adding Int and
>>    UInt forms of NumPartitions.
>>  - Refinements to support zero-build compiles
>>  - Fix whitespace
>>  - ... and 104 more: https://git.openjdk.org/jdk/compare/a863ef5d...d6e3546c
>
> src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.cpp line 49:
> 
>> 47:   uintx bit_number = start_idx & right_n_bits(LogBitsPerWord);
>> 48:   uintx omit_mask = right_n_bits(bit_number);
>> 49:   uintx mask = ((uintx) 0 - 1) & ~omit_mask;
> 
> Isn't that simply `mask = ~omit_mask`? If so, you could omit the line and fold it into the above line like `mask = ~right_n_bits(bit_number)`.

That's much better.  Thanks.

> src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.cpp line 56:
> 
>> 54:     // Return number of consecutive ones starting with the_bit and including more significant bits.
>> 55:     uintx aligned = element_bits >> bit_number;
>> 56:     uintx complement = ~aligned;;
> 
> There is one too many ; at the end of the line.

Fixed

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17561#discussion_r1591562180
PR Review Comment: https://git.openjdk.org/jdk/pull/17561#discussion_r1591562827


More information about the shenandoah-dev mailing list