-
Bug
-
Resolution: Duplicate
-
P3
-
26
The attached Java Fuzzer test starts to fail after JDK-8315066 which must have revealed an existing issue with improved type information (please update the affected versions accordingly once the root cause is known).
To reproduce:
$ java -XX:CompileCommand=compileonly,*Test*::* -Xcomp Test.java
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (c:\sb\prod\1751923059\workspace\open\src\hotspot\share\opto\loopPredicate.cpp:107), pid=69620, tid=69584
# assert(parse_predicate_success_proj->is_uncommon_trap_if_pattern(reason)) failed: must be a uct if pattern!
#
# JRE version: Java(TM) SE Runtime Environment (26.0) (fastdebug build 26-internal-2025-07-07-2115182.vladimir.kozlov.jdkgit2)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 26-internal-2025-07-07-2115182.vladimir.kozlov.jdkgit2, compiled mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# Problematic frame:
# V [jvm.dll+0xc288d3] PhaseIdealLoop::create_new_if_for_predicate+0x983
.............
Command Line: -Xmx1G -XX:+IgnoreUnrecognizedVMOptions -XX:CompileCommand=quiet -XX:CompileCommand=compileonly,*Test*::* -Xcomp Test_520
.............
C2:582 12 b 4 Test_520::vMeth1 (301 bytes)
Stack: [0x000000221ba00000,0x000000221bb00000], sp=0x000000221bafafa0, free space=1003k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xc288d3] PhaseIdealLoop::create_new_if_for_predicate+0x983 (loopPredicate.cpp:107)
V [jvm.dll+0xe47668] ClonePredicateToTargetLoop::clone_parse_predicate+0x48 (predicates.hpp:1162)
V [jvm.dll+0xe4b2b5] CloneUnswitchedLoopPredicatesVisitor::visit+0x45 (predicates.cpp:1112)
V [jvm.dll+0xc3926a] PredicateIterator::for_each+0xea (predicates.hpp:780)
V [jvm.dll+0xc454c0] OriginalLoop::multiversion+0x160 (loopUnswitch.cpp:312)
V [jvm.dll+0xc4431e] PhaseIdealLoop::do_unswitching+0x2be (loopUnswitch.cpp:399)
V [jvm.dll+0xc3d545] IdealLoopTree::iteration_split_impl+0x265 (loopTransform.cpp:3516)
V [jvm.dll+0xc3d218] IdealLoopTree::iteration_split+0x118 (loopTransform.cpp:3540)
V [jvm.dll+0xc3d134] IdealLoopTree::iteration_split+0x34 (loopTransform.cpp:3524)
V [jvm.dll+0xc3d134] IdealLoopTree::iteration_split+0x34 (loopTransform.cpp:3524)
V [jvm.dll+0xc3d290] IdealLoopTree::iteration_split+0x190 (loopTransform.cpp:3552)
V [jvm.dll+0xc4aa3e] PhaseIdealLoop::build_and_optimize+0x103e (loopnode.cpp:5019)
V [jvm.dll+0x5d0160] PhaseIdealLoop::optimize+0x170 (loopnode.hpp:1270)
V [jvm.dll+0x5c17f7] Compile::Optimize+0x897 (compile.cpp:2462)
V [jvm.dll+0x5be881] Compile::Compile+0x10e1 (compile.cpp:860)
V [jvm.dll+0x4c25d9] C2Compiler::compile_method+0x179 (c2compiler.cpp:144)
V [jvm.dll+0x5dcd9e] CompileBroker::invoke_compiler_on_method+0x7ae (compileBroker.cpp:2327)
V [jvm.dll+0x5da0ef] CompileBroker::compiler_thread_loop+0x32f (compileBroker.cpp:1972)
V [jvm.dll+0x92fe08] JavaThread::thread_main_inner+0x288 (javaThread.cpp:774)
V [jvm.dll+0x1048852] Thread::call_run+0x1b2 (thread.cpp:248)
V [jvm.dll+0xdefc51] thread_native_entry+0xe1 (os_windows.cpp:562)
C [ucrtbase.dll+0x26b4c] (no source info available)
C [KERNEL32.DLL+0x14cb0] (no source info available)
C [ntdll.dll+0x7edcb] (no source info available)
To reproduce:
$ java -XX:CompileCommand=compileonly,*Test*::* -Xcomp Test.java
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (c:\sb\prod\1751923059\workspace\open\src\hotspot\share\opto\loopPredicate.cpp:107), pid=69620, tid=69584
# assert(parse_predicate_success_proj->is_uncommon_trap_if_pattern(reason)) failed: must be a uct if pattern!
#
# JRE version: Java(TM) SE Runtime Environment (26.0) (fastdebug build 26-internal-2025-07-07-2115182.vladimir.kozlov.jdkgit2)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 26-internal-2025-07-07-2115182.vladimir.kozlov.jdkgit2, compiled mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# Problematic frame:
# V [jvm.dll+0xc288d3] PhaseIdealLoop::create_new_if_for_predicate+0x983
.............
Command Line: -Xmx1G -XX:+IgnoreUnrecognizedVMOptions -XX:CompileCommand=quiet -XX:CompileCommand=compileonly,*Test*::* -Xcomp Test_520
.............
C2:582 12 b 4 Test_520::vMeth1 (301 bytes)
Stack: [0x000000221ba00000,0x000000221bb00000], sp=0x000000221bafafa0, free space=1003k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xc288d3] PhaseIdealLoop::create_new_if_for_predicate+0x983 (loopPredicate.cpp:107)
V [jvm.dll+0xe47668] ClonePredicateToTargetLoop::clone_parse_predicate+0x48 (predicates.hpp:1162)
V [jvm.dll+0xe4b2b5] CloneUnswitchedLoopPredicatesVisitor::visit+0x45 (predicates.cpp:1112)
V [jvm.dll+0xc3926a] PredicateIterator::for_each+0xea (predicates.hpp:780)
V [jvm.dll+0xc454c0] OriginalLoop::multiversion+0x160 (loopUnswitch.cpp:312)
V [jvm.dll+0xc4431e] PhaseIdealLoop::do_unswitching+0x2be (loopUnswitch.cpp:399)
V [jvm.dll+0xc3d545] IdealLoopTree::iteration_split_impl+0x265 (loopTransform.cpp:3516)
V [jvm.dll+0xc3d218] IdealLoopTree::iteration_split+0x118 (loopTransform.cpp:3540)
V [jvm.dll+0xc3d134] IdealLoopTree::iteration_split+0x34 (loopTransform.cpp:3524)
V [jvm.dll+0xc3d134] IdealLoopTree::iteration_split+0x34 (loopTransform.cpp:3524)
V [jvm.dll+0xc3d290] IdealLoopTree::iteration_split+0x190 (loopTransform.cpp:3552)
V [jvm.dll+0xc4aa3e] PhaseIdealLoop::build_and_optimize+0x103e (loopnode.cpp:5019)
V [jvm.dll+0x5d0160] PhaseIdealLoop::optimize+0x170 (loopnode.hpp:1270)
V [jvm.dll+0x5c17f7] Compile::Optimize+0x897 (compile.cpp:2462)
V [jvm.dll+0x5be881] Compile::Compile+0x10e1 (compile.cpp:860)
V [jvm.dll+0x4c25d9] C2Compiler::compile_method+0x179 (c2compiler.cpp:144)
V [jvm.dll+0x5dcd9e] CompileBroker::invoke_compiler_on_method+0x7ae (compileBroker.cpp:2327)
V [jvm.dll+0x5da0ef] CompileBroker::compiler_thread_loop+0x32f (compileBroker.cpp:1972)
V [jvm.dll+0x92fe08] JavaThread::thread_main_inner+0x288 (javaThread.cpp:774)
V [jvm.dll+0x1048852] Thread::call_run+0x1b2 (thread.cpp:248)
V [jvm.dll+0xdefc51] thread_native_entry+0xe1 (os_windows.cpp:562)
C [ucrtbase.dll+0x26b4c] (no source info available)
C [KERNEL32.DLL+0x14cb0] (no source info available)
C [ntdll.dll+0x7edcb] (no source info available)
- duplicates
-
JDK-8360561 PhaseIdealLoop::create_new_if_for_predicate hits "must be a uct if pattern" assert
-
- Open
-
- relates to
-
JDK-8315066 Add unsigned bounds and known bits to TypeInt/Long
-
- Resolved
-