-
Bug
-
Resolution: Unresolved
-
P4
-
repo-valhalla
compiler/valhalla/inlinetypes/TestCallingConvention.java fails with "-XX:-TieredCompilation -XX:VerifyIterativeGVN=10":
Missed Value optimization:
dist dump
---------------------------------------------
3 1423 CallStaticJava === 1585 1602 1923 8 1 (1482 1316 1314 1 1 1 1 1 1 270 1 1 1 1 1 1 1 1 1 1 ) [[ 1438 1439 1440 1452 1449 1450 ]] # Static java.lang.invoke.MethodHandle::invokeBasic(LL)L java/lang/Object * ( java/lang/invoke/MethodHandle (java/lang/constant/Constable):NotNull *, java/lang/Object *, java/lang/Object * ) Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565) !jvms: Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
3 1657 CallStaticJava === 1818 1835 1926 8 1 (1715 1341 1 1 1 1 1 1 270 1 1 1 1 1 1 1 1 1 ) [[ 1671 1672 1673 1685 1682 1683 ]] # Static java.lang.invoke.MethodHandle::invokeBasic(L)L java/lang/Object * ( java/lang/invoke/MethodHandle (java/lang/constant/Constable):NotNull *, java/lang/Object * ) Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565) !jvms: Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
3 1443 Catch === 1438 1439 [[ 1444 1445 ]] !jvms: Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
3 1676 Catch === 1671 1672 [[ 1677 1678 ]] !jvms: Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
2 1452 Proj === 1423 [[ 1453 ]] #5 Oop:java/lang/Object * !jvms: Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
2 1685 Proj === 1657 [[ 1686 ]] #5 Oop:java/lang/Object * !jvms: Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
2 1444 CatchProj === 1443 [[ 1336 1453 ]] #0@bci -1 !jvms: Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
2 1677 CatchProj === 1676 [[ 1336 1686 ]] #0@bci -1 !jvms: Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
1 1453 CheckCastPP === 1444 1452 [[ 1367 ]] #java/lang/Object * (speculative=null) Oop:java/lang/Object * (speculative=null) !orig=[1333] !jvms: Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
1 1686 CheckCastPP === 1677 1685 [[ 1367 ]] #java/lang/Object * (speculative=compiler/valhalla/inlinetypes/MyValue2 (compiler/valhalla/inlinetypes/MyInterface):exact * (inline_depth=4)) Oop:java/lang/Object * (speculative=compiler/valhalla/inlinetypes/MyValue2 (compiler/valhalla/inlinetypes/MyInterface):exact * (inline_depth=4)) !orig=[1358] !jvms: Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
1 1336 Region === 1336 1677 1444 [[ 1336 303 1365 1366 1367 ]] !jvms: DirectMethodHandleAccessor::invokeImpl @ bci:107 (line 153) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
0 1367 Phi === 1336 1686 1453 [[ 303 ]] #java/lang/Object * Oop:java/lang/Object * !jvms: DirectMethodHandleAccessor::invokeImpl @ bci:44 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
Current type:
java/lang/Object *
Optimized type:
java/lang/Object * (speculative=compiler/valhalla/inlinetypes/MyValue2 (compiler/valhalla/inlinetypes/MyInterface):exact *)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/workspace/open/src/hotspot/share/opto/phaseX.cpp:1098), pid=114265, tid=114281
# assert(!failure) failed: Missed optimization opportunity in PhaseIterGVN
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-09-03-1302536.marc.chevalier.jdk)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-09-03-1302536.marc.chevalier.jdk, mixed mode, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x187b374] PhaseIterGVN::verify_optimize() [clone .part.0]+0x9a4
#
Current CompileTask:
C2:6110 641 b java.lang.reflect.Method::invoke (108 bytes)
Stack: [0x000000016ebb8000,0x000000016edbb000], sp=0x000000016edb6d50, free space=2043k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0x12f851c] VMError::report(outputStream*, bool)+0x1b00 (phaseX.cpp:1098)
V [libjvm.dylib+0x12fbdbc] VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void const*, void const*, char const*, int, unsigned long)+0x55c
V [libjvm.dylib+0x5deb88] print_error_for_unit_test(char const*, char const*, char*)+0x0
V [libjvm.dylib+0xfbcb64] PhaseIterGVN::verify_optimize()+0x4f8
V [libjvm.dylib+0xfbd014] PhaseIterGVN::optimize()+0x34c
V [libjvm.dylib+0x538d60] Compile::inline_incrementally_cleanup(PhaseIterGVN&)+0x194
V [libjvm.dylib+0x5395d0] Compile::inline_incrementally(PhaseIterGVN&)+0x23c
V [libjvm.dylib+0x52e5bc] Compile::Optimize()+0x2f8
V [libjvm.dylib+0x52ce20] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x15ec
V [libjvm.dylib+0x3d48f0] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1e4
V [libjvm.dylib+0x550aac] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x98c
V [libjvm.dylib+0x54fdcc] CompileBroker::compiler_thread_loop()+0x390
V [libjvm.dylib+0x988ae4] JavaThread::thread_main_inner()+0x1d0
V [libjvm.dylib+0x122a1c4] Thread::call_run()+0xf0
V [libjvm.dylib+0xf5dbb0] thread_native_entry(Thread*)+0x138
C [libsystem_pthread.dylib+0x7240] _pthread_start+0x94
Lock stack of current Java thread (top to bottom):
Missed Value optimization:
dist dump
---------------------------------------------
3 1423 CallStaticJava === 1585 1602 1923 8 1 (1482 1316 1314 1 1 1 1 1 1 270 1 1 1 1 1 1 1 1 1 1 ) [[ 1438 1439 1440 1452 1449 1450 ]] # Static java.lang.invoke.MethodHandle::invokeBasic(LL)L java/lang/Object * ( java/lang/invoke/MethodHandle (java/lang/constant/Constable):NotNull *, java/lang/Object *, java/lang/Object * ) Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565) !jvms: Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
3 1657 CallStaticJava === 1818 1835 1926 8 1 (1715 1341 1 1 1 1 1 1 270 1 1 1 1 1 1 1 1 1 ) [[ 1671 1672 1673 1685 1682 1683 ]] # Static java.lang.invoke.MethodHandle::invokeBasic(L)L java/lang/Object * ( java/lang/invoke/MethodHandle (java/lang/constant/Constable):NotNull *, java/lang/Object * ) Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565) !jvms: Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
3 1443 Catch === 1438 1439 [[ 1444 1445 ]] !jvms: Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
3 1676 Catch === 1671 1672 [[ 1677 1678 ]] !jvms: Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
2 1452 Proj === 1423 [[ 1453 ]] #5 Oop:java/lang/Object * !jvms: Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
2 1685 Proj === 1657 [[ 1686 ]] #5 Oop:java/lang/Object * !jvms: Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
2 1444 CatchProj === 1443 [[ 1336 1453 ]] #0@bci -1 !jvms: Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
2 1677 CatchProj === 1676 [[ 1336 1686 ]] #0@bci -1 !jvms: Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
1 1453 CheckCastPP === 1444 1452 [[ 1367 ]] #java/lang/Object * (speculative=null) Oop:java/lang/Object * (speculative=null) !orig=[1333] !jvms: Invokers$Holder::invokeExact_MT @ bci:20 DirectMethodHandleAccessor::invokeImpl @ bci:55 (line 155) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
1 1686 CheckCastPP === 1677 1685 [[ 1367 ]] #java/lang/Object * (speculative=compiler/valhalla/inlinetypes/MyValue2 (compiler/valhalla/inlinetypes/MyInterface):exact * (inline_depth=4)) Oop:java/lang/Object * (speculative=compiler/valhalla/inlinetypes/MyValue2 (compiler/valhalla/inlinetypes/MyInterface):exact * (inline_depth=4)) !orig=[1358] !jvms: Invokers$Holder::invokeExact_MT @ bci:19 DirectMethodHandleAccessor::invokeImpl @ bci:41 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
1 1336 Region === 1336 1677 1444 [[ 1336 303 1365 1366 1367 ]] !jvms: DirectMethodHandleAccessor::invokeImpl @ bci:107 (line 153) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
0 1367 Phi === 1336 1686 1453 [[ 303 ]] #java/lang/Object * Oop:java/lang/Object * !jvms: DirectMethodHandleAccessor::invokeImpl @ bci:44 (line 154) DirectMethodHandleAccessor::invoke @ bci:23 (line 104) Method::invoke @ bci:102 (line 565)
Current type:
java/lang/Object *
Optimized type:
java/lang/Object * (speculative=compiler/valhalla/inlinetypes/MyValue2 (compiler/valhalla/inlinetypes/MyInterface):exact *)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/workspace/open/src/hotspot/share/opto/phaseX.cpp:1098), pid=114265, tid=114281
# assert(!failure) failed: Missed optimization opportunity in PhaseIterGVN
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-09-03-1302536.marc.chevalier.jdk)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-09-03-1302536.marc.chevalier.jdk, mixed mode, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x187b374] PhaseIterGVN::verify_optimize() [clone .part.0]+0x9a4
#
Current CompileTask:
C2:6110 641 b java.lang.reflect.Method::invoke (108 bytes)
Stack: [0x000000016ebb8000,0x000000016edbb000], sp=0x000000016edb6d50, free space=2043k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0x12f851c] VMError::report(outputStream*, bool)+0x1b00 (phaseX.cpp:1098)
V [libjvm.dylib+0x12fbdbc] VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void const*, void const*, char const*, int, unsigned long)+0x55c
V [libjvm.dylib+0x5deb88] print_error_for_unit_test(char const*, char const*, char*)+0x0
V [libjvm.dylib+0xfbcb64] PhaseIterGVN::verify_optimize()+0x4f8
V [libjvm.dylib+0xfbd014] PhaseIterGVN::optimize()+0x34c
V [libjvm.dylib+0x538d60] Compile::inline_incrementally_cleanup(PhaseIterGVN&)+0x194
V [libjvm.dylib+0x5395d0] Compile::inline_incrementally(PhaseIterGVN&)+0x23c
V [libjvm.dylib+0x52e5bc] Compile::Optimize()+0x2f8
V [libjvm.dylib+0x52ce20] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x15ec
V [libjvm.dylib+0x3d48f0] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1e4
V [libjvm.dylib+0x550aac] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x98c
V [libjvm.dylib+0x54fdcc] CompileBroker::compiler_thread_loop()+0x390
V [libjvm.dylib+0x988ae4] JavaThread::thread_main_inner()+0x1d0
V [libjvm.dylib+0x122a1c4] Thread::call_run()+0xf0
V [libjvm.dylib+0xf5dbb0] thread_native_entry(Thread*)+0x138
C [libsystem_pthread.dylib+0x7240] _pthread_start+0x94
Lock stack of current Java thread (top to bottom):