[lworld] RFR: 8335256: [lworld] C2: Remove larval InlineTypeNode [v4]
Quan Anh Mai
qamai at openjdk.org
Tue May 6 00:13:25 UTC 2025
On Mon, 5 May 2025 12:02:46 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> Quan Anh Mai has updated the pull request incrementally with one additional commit since the last revision:
>>
>> fast path for non intrinsics
>
> Thanks for quickly fixing these issues. I ran another round of testing and there's only one issue left:
>
>
> compiler/arraycopy/TestEliminatedArrayCopyPhi.java
> -ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:-TieredCompilation
>
> # A fatal error has been detected by the Java Runtime Environment:
> #
> # Internal Error (/workspace/open/src/hotspot/share/opto/phaseX.cpp:1821), pid=1040062, tid=1040080
> # Error: assert(_worklist.size() == 0) failed
> #
> # JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-04-30-0702055.tobias.hartmann.valhalla2)
> # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-04-30-0702055.tobias.hartmann.valhalla2, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
> # Problematic frame:
> # V [libjvm.so+0x17de609] PhaseCCP::PhaseCCP(PhaseIterGVN*)+0x169
>
> Current CompileTask:
> C2:455 160 b 4 compiler.arraycopy.TestEliminatedArrayCopyPhi::test (27 bytes)
>
> Stack: [0x00007fadf8385000,0x00007fadf8485000], sp=0x00007fadf8480270, free space=1004k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
> V [libjvm.so+0x17de609] PhaseCCP::PhaseCCP(PhaseIterGVN*)+0x169 (phaseX.cpp:1821)
> V [libjvm.so+0xb2573a] Compile::Optimize()+0xa0a (compile.cpp:2950)
> V [libjvm.so+0xb28b7b] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1feb (compile.cpp:874)
> V [libjvm.so+0x94e98d] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x46d (c2compiler.cpp:142)
> V [libjvm.so+0xb37882] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xb22 (compileBroker.cpp:2307)
> V [libjvm.so+0xb38888] CompileBroker::compiler_thread_loop()+0x588 (compileBroker.cpp:1951)
> V [libjvm.so+0x109182f] JavaThread::thread_main_inner()+0x12f (javaThread.cpp:773)
> V [libjvm.so+0x1ac19d6] Thread::call_run()+0xb6 (thread.cpp:231)
> V [libjvm.so+0x1748888] thread_native_entry(Thread*)+0x128 (os_linux.cpp:877)
@TobiHartmann The failure was due to the fact that `PhaseMacroExpand::eliminate_allocate_node` can push nodes on the igvn worklist even if it does not successfully remove the allocation. As a result, I moved the progress check to after `igvn.optimize()` so that igvn worklist is cleared.
-------------
PR Comment: https://git.openjdk.org/valhalla/pull/1447#issuecomment-2852804313
More information about the valhalla-dev
mailing list