-
Bug
-
Resolution: Fixed
-
P4
-
repo-valhalla
compiler/valhalla/inlinetypes/TestGenerated.java fails with -XX:+UseAtomicValueFlattening
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/oracle/valhalla/open/src/hotspot/share/opto/postaloc.cpp:140), pid=3766156, tid=3766173
# assert(false) failed: unexpected yanked node
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-04-22-0723438.tobias...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-04-22-0723438.tobias..., mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x17e3621] PhaseChaitin::yank_if_dead_recurse(Node*, Node*, Block*, Node_List*, Node_List*) [clone .part.0]+0x271
Current CompileTask:
C2:1917 656 b 4 compiler.valhalla.inlinetypes.TestGenerated::test11 (31 bytes)
Stack: [0x000073e3bc100000,0x000073e3bc200000], sp=0x000073e3bc1fb7e0, free space=1005k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x17e3621] PhaseChaitin::yank_if_dead_recurse(Node*, Node*, Block*, Node_List*, Node_List*) [clone .part.0]+0x271 (postaloc.cpp:140)
V [libjvm.so+0x17e6857] PhaseChaitin::post_allocate_copy_removal()+0x8f7 (chaitin.hpp:725)
V [libjvm.so+0x9d0e14] PhaseChaitin::Register_Allocate()+0xd24 (chaitin.cpp:636)
V [libjvm.so+0xb23dc9] Compile::Code_Gen()+0x729 (compile.cpp:3509)
V [libjvm.so+0xb29288] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x2148 (compile.cpp:917)
V [libjvm.so+0x94eb7d] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x46d (c2compiler.cpp:142)
V [libjvm.so+0xb37e32] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xb22 (compileBroker.cpp:2307)
V [libjvm.so+0xb38e38] CompileBroker::compiler_thread_loop()+0x588 (compileBroker.cpp:1951)
V [libjvm.so+0x1092c5f] JavaThread::thread_main_inner()+0x12f (javaThread.cpp:773)
V [libjvm.so+0x1ac15b6] Thread::call_run()+0xb6 (thread.cpp:231)
V [libjvm.so+0x1747478] thread_native_entry(Thread*)+0x128 (os_linux.cpp:877)
C [libc.so.6+0x9caa4]
The problem is a DecodeN kept alive by a MemBarVolatile. This comes from 'InlineTypeNode::convert_from_payload'
o183 ConvL2I === _ o182 [[ o184 ]] #int
o184 CastI2N === o179 o183 [[ o419 ]]
o419 DecodeN === _ o184 [[ o187 65 ]] #float[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact *
o187 MemBarVolatile === o179 o1 o180 o1 o1 o419 [[ o188 o189 64 ]]
65 membar_volatile === 67 0 94 0 0 o419 [[ 66 ]] !jvms: TestGenerated::test11 @ bci:2 (line 201)
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/oracle/valhalla/open/src/hotspot/share/opto/postaloc.cpp:140), pid=3766156, tid=3766173
# assert(false) failed: unexpected yanked node
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-04-22-0723438.tobias...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-04-22-0723438.tobias..., mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x17e3621] PhaseChaitin::yank_if_dead_recurse(Node*, Node*, Block*, Node_List*, Node_List*) [clone .part.0]+0x271
Current CompileTask:
C2:1917 656 b 4 compiler.valhalla.inlinetypes.TestGenerated::test11 (31 bytes)
Stack: [0x000073e3bc100000,0x000073e3bc200000], sp=0x000073e3bc1fb7e0, free space=1005k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x17e3621] PhaseChaitin::yank_if_dead_recurse(Node*, Node*, Block*, Node_List*, Node_List*) [clone .part.0]+0x271 (postaloc.cpp:140)
V [libjvm.so+0x17e6857] PhaseChaitin::post_allocate_copy_removal()+0x8f7 (chaitin.hpp:725)
V [libjvm.so+0x9d0e14] PhaseChaitin::Register_Allocate()+0xd24 (chaitin.cpp:636)
V [libjvm.so+0xb23dc9] Compile::Code_Gen()+0x729 (compile.cpp:3509)
V [libjvm.so+0xb29288] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x2148 (compile.cpp:917)
V [libjvm.so+0x94eb7d] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x46d (c2compiler.cpp:142)
V [libjvm.so+0xb37e32] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xb22 (compileBroker.cpp:2307)
V [libjvm.so+0xb38e38] CompileBroker::compiler_thread_loop()+0x588 (compileBroker.cpp:1951)
V [libjvm.so+0x1092c5f] JavaThread::thread_main_inner()+0x12f (javaThread.cpp:773)
V [libjvm.so+0x1ac15b6] Thread::call_run()+0xb6 (thread.cpp:231)
V [libjvm.so+0x1747478] thread_native_entry(Thread*)+0x128 (os_linux.cpp:877)
C [libc.so.6+0x9caa4]
The problem is a DecodeN kept alive by a MemBarVolatile. This comes from 'InlineTypeNode::convert_from_payload'
o183 ConvL2I === _ o182 [[ o184 ]] #int
o184 CastI2N === o179 o183 [[ o419 ]]
o419 DecodeN === _ o184 [[ o187 65 ]] #float[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact *
o187 MemBarVolatile === o179 o1 o180 o1 o1 o419 [[ o188 o189 64 ]]
65 membar_volatile === 67 0 94 0 0 o419 [[ 66 ]] !jvms: TestGenerated::test11 @ bci:2 (line 201)
- caused by
-
JDK-8341759 [lworld] JIT support for nullable, atomic, flat fields
-
- Resolved
-
- links to
-
Commit(lworld) openjdk/valhalla/e1280b3e
-
Review(lworld) openjdk/valhalla/1442