[lworld] RFR: 8372113: [lworld] Fix various issues with TypeAryPtr and TypeAryKlassPtr
Quan Anh Mai
qamai at openjdk.org
Sun Nov 23 09:59:14 UTC 2025
On Fri, 21 Nov 2025 14:48:48 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> Hi,
>>
>> This PR fixes various issues with `TypeAryPtr` and `TypeAryKlassPtr`. It starts with me trying to tighten the properties (`flat`, `null_free`, etc) of these classes, then fixing all the revealed issues until there are no crashes or wrong results left.
>>
>> Please take a look and leave your reviews, thanks a lot.
>
> Thanks for working on this!
>
> Unfortunately, it triggers a lot of failures in testing. Here's a few, I can provide more details next week.
>
>
> compiler/c2/TestMergeStores.java#id0
> -ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:+TieredCompilation
>
> # Error: assert(klass_is_exact()) failed
>
> Current CompileTask:
> C2:6719 1466 b 4 compiler.c2.TestMergeStores::test600a (165 bytes)
>
> Stack: [0x00007f992c11b000,0x00007f992c21b000], sp=0x00007f992c216b40, free space=1006k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
> V [libjvm.so+0xbc272a] Compile::flatten_alias_type(TypePtr const*) const+0xeba (type.hpp:1467)
> V [libjvm.so+0xbc2f5c] Compile::find_alias_type(TypePtr const*, bool, ciField*, bool) [clone .part.0]+0x8c (compile.cpp:1677)
> V [libjvm.so+0x1590623] LibraryCallKit::inline_unsafe_access(bool, BasicType, LibraryCallKit::AccessKind, bool, bool)+0x9e3 (compile.hpp:1005)
> V [libjvm.so+0x15c211a] LibraryIntrinsic::generate(JVMState*)+0x22a (library_call.cpp:130)
> V [libjvm.so+0xdc5f4f] Parse::do_call()+0xebf (doCall.cpp:771)
> V [libjvm.so+0x190ded8] Parse::do_one_bytecode()+0x458 (parse2.cpp:3526)
> V [libjvm.so+0x18f4f9c] Parse::do_one_block()+0x24c (parse1.cpp:1713)
> V [libjvm.so+0x18f63a0] Parse::do_all_blocks()+0x130 (parse1.cpp:770)
> V [libjvm.so+0x18f9f01] Parse::Parse(JVMState*, ciMethod*, float)+0xea1 (parse1.cpp:674)
> V [libjvm.so+0x9e1205] ParseGenerator::generate(JVMState*)+0x135 (callGenerator.cpp:99)
> V [libjvm.so+0xbe7ee3] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x15e3 (compile.cpp:824)
> V [libjvm.so+0x9ddd30] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x4c0 (c2compiler.cpp:149)
> V [libjvm.so+0xbf7f40] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x780 (compileBroker.cpp:2345)
> V [libjvm.so+0xbf97a0] CompileBroker::compiler_thread_loop()+0x530 (compileBroker.cpp:1989)
> V [libjvm.so+0x119c49b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:777)
> V [libjvm.so+0x1c7c0b6] Thread::call_run()+0xb6 (thread.cpp:242)
> V [libjvm.so+0x18a2a78] thread_native_entry(Thread*)+0x118 (os_linux.cpp:879)
>
>
>
> compiler/codegen/TestRedundantLea.java#StoreNParallel
> -XX:UseAVX=0 -XX:UseSSE=3
>
> Multiple IR failures
>
>
>
> compiler/valhalla/inlinetypes/TestArrays.java
> -Xcomp -XX:-TieredCompilation -DIgnoreCompilerControls=true
>
>
> # assert(_base >= KlassPtr && _base <= AryKlassPtr) failed: Not a klass po...
@TobiHartmann Thanks a lot, I have fixed the failure you mentioned here. It also seems to reveal an issue with C2 alias analysis.
-------------
PR Comment: https://git.openjdk.org/valhalla/pull/1755#issuecomment-3567731934
More information about the valhalla-dev
mailing list