On Fri, 21 Nov 2025 14:48:48 GMT, Tobias Hartmann <[email protected]> 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
