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

Cesar Soares Lucas cslucas at openjdk.org
Tue Sep 16 21:47:31 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/share/gc/shared/c2/barrierSetC2.cpp line 724:

> 722:     } else {
> 723:       if (UseCompactObjectHeaders) {
> 724:         base_off = 0; /* FIXME */

Should this have been fixed before merge?

src/hotspot/share/jvmci/jvmciCompilerToVM.cpp line 454:

> 452:   const char* base_desc = nullptr;
> 453:   JVMCIKlassHandle klass(THREAD);
> 454:   if (offset == 1 /*oopDesc::klass_offset_in_bytes()*/) {

@rkennke I'm seeing a crash internally in Graal and I'm suspecting that this line may be the culprit. The error is:


Caused by: java.lang.IllegalArgumentException: Unexpected arguments: Ljdk/vm/ci/hotspot/DirectHotSpotObjectConstantImpl; 8 true
	at jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVM.getResolvedJavaType0(Native Method)
	at jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVM.getResolvedJavaType(CompilerToVM.java:1020)
...

I'm wondering if the commented part of the condition was supposed to be uncommented at some point.

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

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


More information about the lilliput-dev mailing list