RFR: 8367397: Improve naming and terminology in regmask.hpp and regmask.cpp

Emanuel Peter epeter at openjdk.org
Thu Sep 11 12:56:46 UTC 2025


On Thu, 11 Sep 2025 12:40:02 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> Some names in `regmask.hpp` and `regmask.cpp` are unclear and should be improved.
>> 
>> ### Changeset
>> 
>> - Rename `RM_SIZE` to `RM_SIZE_IN_INTS` and `_RM_I` to `_RM_INT` to make it clear that these refer to integer-sized (32-bit) array elements.
>> - Rename `_RM_SIZE` to `_RM_SIZE_IN_WORDS` and `_RM_UP` to `_RM_WORD` to make it clear that these refer to machine-word-sized (32 or 64 bits depending on platform) array elements.
>> - Rename `_RM_MAX` to `_RM_WORD_MAX_INDEX` for clarity.
>> - Rename `is_AllStack` to `is_infinite` (and related resulting changes in comments and local variables). The old terminology "all-stack", referring to the infinite register mask bits, is misleading (as pointed out by @eme64 in https://github.com/openjdk/jdk/pull/20404#discussion_r2316234008). The reason is that the infinite bits do not represent *all* stack bits. Some stack bits are instead part of the non-infinite bits of the register mask.
>> 
>> ### Testing
>> 
>> - [GitHub Actions](https://github.com/dlunde/jdk/actions/runs/17638365968)
>> - `tier1` and HotSpot parts of `tier2` and `tier3` (and additional Oracle-internal testing) on Windows x64, Linux x64, Linux aarch64, macOS x64, and macOS aarch64.
>
> src/hotspot/share/opto/regmask.hpp line 78:
> 
>> 76:     // is something like 90+ parameters.
>> 77:     int       _RM_INT[RM_SIZE_IN_INTS];
>> 78:     uintptr_t _RM_WORD[_RM_SIZE_IN_WORDS];
> 
> Is there now still a reason to have `_` for the words and not for the ints?

Generally, we use `_` for fields, but not for constants.
Also: fields should be lower-case, so maybe `_RM_INT` -> `_rm_int`?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27215#discussion_r2340660689


More information about the hotspot-compiler-dev mailing list