RFR: 8377172: Change datatype of CodeEntryAlignment to uint

Albert Mingkun Yang ayang at openjdk.org
Tue Feb 10 08:24:38 UTC 2026


On Mon, 9 Feb 2026 14:15:50 GMT, Leo Korinth <lkorinth at openjdk.org> wrote:

> The main idea of this change is to remove an implicitly narrowing conversion to int from intx (`int code_alignment()`).
> 
> CodeEntryAlignment is constrained to not be bigger than CodeCacheSegmentSize that is itself constrained to be in the range(1, 1024). The data type should really be a uint16_t as its allowed range is [16-1024], but we have no such support for VM flags. uint will do, and will simplify the code greatly (five less casts, six if we count the implicit narrowing cast).
> 
> Also add explicit range on the flag.
> 
> This change is inspired by my change 8376892: Allow conversion warnings in subsets of the code base.
> 
> Completed test tier 1-3.

Marked as reviewed by ayang (Reviewer).

src/hotspot/share/runtime/globals.hpp line 1514:

> 1512:           "Code entry alignment for generated code"                         \
> 1513:           " (in bytes, power of two)")                                      \
> 1514:           range(16, 1024)                                                   \

Since this range is derived from other related flag, I tend to think we shouldn't place a range here -- to me, constraints in `product*(` declaration indicates an intrinsic attribute of this particular flag, e.g. the "power of two" constraint.

YMMV.

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

PR Review: https://git.openjdk.org/jdk/pull/29637#pullrequestreview-3777401268
PR Review Comment: https://git.openjdk.org/jdk/pull/29637#discussion_r2786467856


More information about the hotspot-dev mailing list