From cslucas at openjdk.org Tue Sep 16 21:47:31 2025 From: cslucas at openjdk.org (Cesar Soares Lucas) Date: Tue, 16 Sep 2025 21:47:31 GMT Subject: [master] RFR: 8347710: [Lilliput] Implement 4 byte headers [v8] In-Reply-To: References: <3F1pXSToMPvaacJejJ-8CXQSORY-x4WIDAeT26g1gqE=.afdadc1c-3e5e-4be6-81e7-bbc31716da04@github.com> Message-ID: On Fri, 24 Jan 2025 15:34:20 GMT, Roman Kennke 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