Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8369646

Test compiler/c2/TestEliminateRedundantConversionSequences.java fails with "Missed optimization opportunity in PhaseIterGVN"

XMLWordPrintable

    • generic
    • linux

      Intermittent test crash via assertion failure. Seen in Valhalla, but appears to be in mainline.

      Missed Identity optimization:
      Old node:
      dist dump
      ---------------------------------------------
         1 384 ConvL2D === _ 365 [[ 376 369 364 ]] #double !orig=[368],[357],[348] !jvms: TestEliminateRedundantConversionSequences::testD2L @ bci:26 (line 52)
         0 369 ConvD2L === _ 384 [[ 358 ]] #long !orig=[357],[348]
      New node:
      dist dump
      ---------------------------------------------
         1 364 Phi === 338 298 384 [[ 365 ]] #double !orig=[355],[337],204,[198]
         0 365 ConvD2L === _ 364 [[ 384 333 ]] #long !orig=[355],[337],204,[198] !jvms: TestEliminateRedundantConversionSequences::testD2L @ bci:19 (line 51)


      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (src/hotspot/share/opto/phaseX.cpp:1105), pid=3159999, tid=3160018
      # assert(!failure) failed: Missed optimization opportunity in PhaseIterGVN
      #
      # JRE version: Java(TM) SE Runtime Environment (26.0+1) (fastdebug build 26-valhalla+1-80)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 26-valhalla+1-80, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0x1900739] PhaseIterGVN::verify_optimize()+0xd19
      #
      # Core dump will be written. Default location: Core dumps may be processed with "/opt/core.sh %p" (or dumping to core.3159999)
      #
      # 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: -Dtest.vm.opts=-XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=jdk-24_linux-x64_bin.tar.gz/jdk-24 -Djava.io.tmpdir=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/tmp -Dtest.tool.vm.opts=-J-XX:MaxRAMPercentage=4.16667 -J-Dtest.boot.jdk=jdk-24_linux-x64_bin.tar.gz/jdk-24 -J-Djava.io.tmpdir=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/tmp -Dtest.compiler.opts= -Dtest.java.opts=-XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:+StressArrayCopyMacroNode -XX:+StressLCM -XX:+StressGCM -XX:+StressIGVN -XX:+StressCCP -XX:+StressMacroExpansion -XX:+StressMethodHandleLinkerInlining -XX:+StressCompiledExceptionHandlers -XX:VerifyConstraintCasts=1 -XX:+StressLoopPeeling -Dtest.jdk=jdk-26/fastdebug -Dcompile.jdk=jdk-26/fastdebug -Dtest.timeout.factor=1.0 -Dtest.nativepath=hotspot/jtreg/native -Dtest.root=test/hotspot/jtreg -Dtest.name=compiler/c2/TestEliminateRedundantConversionSequences.java -Dtest.verbose=Verbose[p=BRIEF,f=FULL,e=FULL,t=true,m=false] -Dtest.file=test/hotspot/jtreg/compiler/c2/TestEliminateRedundantConversionSequences.java -Dtest.src=test/hotspot/jtreg/compiler/c2 -Dtest.src.path=test/hotspot/jtreg/compiler/c2 -Dtest.classes=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/classes/4/compiler/c2/TestEliminateRedundantConversionSequences.d -Dtest.class.path=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/classes/4/compiler/c2/TestEliminateRedundantConversionSequences.d -Dtest.class.path.prefix=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/classes/4/compiler/c2/TestEliminateRedundantConversionSequences.d:test/hotspot/jtreg/compiler/c2 -XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=jdk-24_linux-x64_bin.tar.gz/jdk-24 -Djava.io.tmpdir=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/tmp -XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:+StressArrayCopyMacroNode -XX:+StressLCM -XX:+StressGCM -XX:+StressIGVN -XX:+StressCCP -XX:+StressMacroExpansion -XX:+StressMethodHandleLinkerInlining -XX:+StressCompiledExceptionHandlers -XX:VerifyConstraintCasts=1 -XX:+StressLoopPeeling -Djava.library.path=hotspot/jtreg/native -XX:+IgnoreUnrecognizedVMOptions -XX:CompileCommand=compileonly,compiler.c2.TestEliminateRedundantConversionSequences::test* -XX:-TieredCompilation -Xbatch -XX:VerifyIterativeGVN=1110 com.sun.javatest.regtest.agent.MainWrapper test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/compiler/c2/TestEliminateRedundantConversionSequences.d/main.0.jta

      Host: , AMD EPYC 7J13 64-Core Processor, 12 cores, 23G, Oracle Linux Server release 9.5
      Time: Fri Oct 10 15:23:21 2025 UTC elapsed time: 0.226736 seconds (0d 0h 0m 0s)

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

      Current thread (0x00007f805c1a9970): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=3160018, stack(0x00007f8042c12000,0x00007f8042d12000) (1024K)]


      Current CompileTask:
      C2:226 14 b compiler.c2.TestEliminateRedundantConversionSequences::testD2L (35 bytes)

      Stack: [0x00007f8042c12000,0x00007f8042d12000], sp=0x00007f8042d0ccb0, free space=1003k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x1900739] PhaseIterGVN::verify_optimize()+0xd19 (phaseX.cpp:1105)
      V [libjvm.so+0x1900fa8] PhaseIterGVN::optimize()+0x418 (phaseX.cpp:1069)
      V [libjvm.so+0xbc8c82] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x672 (loopnode.hpp:1292)
      V [libjvm.so+0xbc299b] Compile::Optimize()+0x121b (compile.cpp:2960)
      V [libjvm.so+0xbc570f] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1fcf (compile.cpp:873)
      V [libjvm.so+0x9cf333] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x483 (c2compiler.cpp:149)
      V [libjvm.so+0xbd4cd8] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xb48 (compileBroker.cpp:2342)
      V [libjvm.so+0xbd5e60] CompileBroker::compiler_thread_loop()+0x530 (compileBroker.cpp:1986)
      V [libjvm.so+0x116444b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
      V [libjvm.so+0x1c28f56] Thread::call_run()+0xb6 (thread.cpp:243)
      V [libjvm.so+0x1860218] thread_native_entry(Thread*)+0x128 (os_linux.cpp:892)

            bmaillard Benoît Maillard
            phubner Paul Hübner
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: