C2: Missed Ideal optimization opportunity in PhaseIterGVN for URShiftI still exists

XMLWordPrintable

      Even after JDK-8377389 was fixed we still see test failing for this reason.

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (src/hotspot/share/opto/phaseX.cpp:1905), pid=1919319, tid=1919338
      # assert(false) failed: Missed Ideal optimization opportunity in PhaseIterGVN for URShiftI
      #
      # JRE version: Java(TM) SE Runtime Environment (27.0+11) (fastdebug build 27-ea+11-887)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-ea+11-887, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
      # Problematic frame:
      # V [libjvm.so+0x15ff9d0] PhaseIterGVN::verify_Ideal_for(Node*, bool)+0x5ec
      #
      # Core dump will be written. Default location: Determined by the following: "/opt/core.sh %p" (alternatively, falling back to /tmp/fuzzer.tmp.7Iq5CYf0Tn/core.1919319)
      #
      # If you would like to submit a bug report, please visit:
      # https://bugreport.java.com/bugreport/crash.jsp
      #

      --------------- S U M M A R Y ------------

      Command Line: -Xmx1G -XX:+IgnoreUnrecognizedVMOptions -XX:CompileCommand=quiet -XX:CompileCommand=compileonly,*Test*::* -XX:-TieredCompilation -XX:+UnlockDiagnosticVMOptions -XX:StressSeed=1967047790 -Xbatch -XX:+VerifyLoopOptimizations -XX:VerifyIterativeGVN=1110 -XX:MaxRAMPercentage=6.25 -Dtest.boot.jdk=/jdk/25/37/bundles/linux-aarch64/jdk-25_linux-aarch64_bin.tar.gz/jdk-25 -Djava.io.tmpdir=testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_javafuzzer_MediumTest_java/tmp Test

      Host: AArch64, 8 cores, 31G, Oracle Linux Server release 8.10
      Time: Sat Feb 21 22:44:41 2026 UTC elapsed time: 1.443887 seconds (0d 0h 0m 1s)

      --------------- T H R E A D ---------------

      Current thread (0x0000ffff981562f0): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=1919338, stack(0x0000ffff77208000,0x0000ffff77406000) (2040K)]


      Current CompileTask:
      C2:1443 33 !b Test::mainTest (610 bytes)

      Stack: [0x0000ffff77208000,0x0000ffff77406000], sp=0x0000ffff77400620, free space=2017k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x15ff9d0] PhaseIterGVN::verify_Ideal_for(Node*, bool)+0x5ec (phaseX.cpp:1905)
      V [libjvm.so+0x1600640] PhaseIterGVN::verify_optimize()+0x6bc (phaseX.cpp:1110)
      V [libjvm.so+0x16011f8] PhaseIterGVN::optimize()+0x288 (phaseX.cpp:1084)
      V [libjvm.so+0x9fd110] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x4d0 (loopnode.hpp:1336)
      V [libjvm.so+0x9f75e4] Compile::Optimize()+0x504 (compile.cpp:2491)
      V [libjvm.so+0x9fa130] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x16a4 (compile.cpp:862)
      V [libjvm.so+0x820838] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x2d4 (c2compiler.cpp:147)
      V [libjvm.so+0xa08c68] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xae4 (compileBroker.cpp:2345)
      V [libjvm.so+0xa09c18] CompileBroker::compiler_thread_loop()+0x638 (compileBroker.cpp:1989)
      V [libjvm.so+0xf14768] JavaThread::thread_main_inner()+0x108 (javaThread.cpp:772)
      V [libjvm.so+0x18a34cc] Thread::call_run()+0xac (thread.cpp:243)
      V [libjvm.so+0x1570f2c] thread_native_entry(Thread*)+0x11c (os_linux.cpp:929)
      C [libpthread.so.0+0x7950] start_thread+0x190

            Assignee:
            Kerem Kat
            Reporter:
            David Holmes
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: