RFR: 8256655: rework long counted loop handling [v4]

Roland Westrelin roland at openjdk.java.net
Fri Nov 27 08:17:57 UTC 2020


On Thu, 26 Nov 2020 07:26:59 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

> I ran this through some more stress testing with different values of `StressLongCountedLoop`. It all looks good except for the following crash with `compiler/c2/Test8217359.java`:
> 
> `assert(!in->is_CFG()) failed: CFG Node with no controlling input?`
> 
> ```
> Current CompileTask:
> C2:    295    2 %           compiler.c2.Test8217359::test @ 43 (164 bytes)
> 
> Stack: [0x00007f4abcffc000,0x00007f4abd0fd000],  sp=0x00007f4abd0f7490,  free space=1005k
> Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
> V  [libjvm.so+0x1324824]  PhaseIdealLoop::build_loop_early(VectorSet&, Node_List&, Node_Stack&)+0x6e4
> V  [libjvm.so+0x132ccca]  PhaseIdealLoop::build_and_optimize(LoopOptsMode)+0x4aa
> V  [libjvm.so+0xa16698]  PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x328
> V  [libjvm.so+0xa12955]  Compile::Optimize()+0x13c5
> V  [libjvm.so+0xa147c8]  Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, DirectiveSet*)+0x1838
> V  [libjvm.so+0x846cec]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1dc
> V  [libjvm.so+0xa24a28]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0xe08
> V  [libjvm.so+0xa25578]  CompileBroker::compiler_thread_loop()+0x5a8
> V  [libjvm.so+0x18ab7c6]  JavaThread::thread_main_inner()+0x256
> V  [libjvm.so+0x18b2150]  Thread::call_run()+0x100
> V  [libjvm.so+0x15950f6]  thread_native_entry(Thread*)+0x116
> ```
> 
> Happens with `-XX:+UseParallelGC -XX:+UseNUMA -XX:StressLongCountedLoop=200000000`. Let me know if you need more info to reproduce.

Thanks for running tests. I pushed a fix for that one.

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

PR: https://git.openjdk.java.net/jdk/pull/1316


More information about the hotspot-compiler-dev mailing list