[master] RFR: 8347710: [Lilliput] Implement 4 byte headers [v8]

Andrew Haley aph at openjdk.org
Mon Jan 27 10:37:08 UTC 2025


On Fri, 24 Jan 2025 15:34:20 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

>> Packs/reduces header bits to just 4 bytes.
>> 
>> This reduces the number of Klass* bits to 19 bits, which allows for ~500,000 classes.
>> 
>> Testing:
>> 
>> - tier1 (-UCOH)
>> - tier2 (-UCOH)
>> - tier1 (+UCOH)
>> - tier2 (+UCOH)
>
> Roman Kennke has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix build

src/hotspot/cpu/aarch64/aarch64.ad line 6717:

> 6715: %{
> 6716:   match(Set dst (LoadNKlass mem));
> 6717:   predicate(!needs_acquiring_load(n) && UseCompactObjectHeaders);

Is there ever a time when we have an acquiring load on a narrow klass pointer?
Also, do we ever generate code which loads a narrow klass pointer from something other than an Object? Maybe there's a use somewhere of `LoadNKlass` from somewhere other than `obj-start + klass_offset_in_bytes`?

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

PR Review Comment: https://git.openjdk.org/lilliput/pull/193#discussion_r1930307977


More information about the lilliput-dev mailing list