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

C2 SuperWord: we must avoid Multiversioning for PeelMainPost loops

XMLWordPrintable

    • b16

      The attached Java Fuzzer failure starts to fail after JDK-8350756:

      $ java -XX:CompileCommand=compileonly,*Test*::* -XX:-TieredCompilation -Xcomp -XX:PerMethodTrapLimit=0 Test.java
      $ java -XX:CompileCommand=compileonly,*Reduced*::* -XX:-TieredCompilation -Xcomp -XX:PerMethodTrapLimit=0 Reduced.java

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/System/Volumes/Data/mesos/work_dir/slaves/d228d36c-581b-4156-829e-5c5a441dd0ce-S520/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/3d55c41a-1fd9-42b1-b51b-7e4e4e12782a/runs/590cfc57-d55d-4441-9694-fb7f86b887ba/workspace/open/src/hotspot/share/opto/vectorization.cpp:142), pid=12893, tid=25347
      # assert(_cl->is_multiversion_fast_loop() == (_multiversioning_fast_proj != nullptr)) failed: must find the multiversion selector IFF loop is a multiversion fast loop
      #
      # JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-internal-LTS-2025-03-13-1510029.leonid.mesnik.jdk-td-comp)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-internal-LTS-2025-03-13-1510029.leonid.mesnik.jdk-td-comp, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, bsd-amd64)
      ............
      Command Line: -XX:+UnlockDiagnosticVMOptions -XX:RepeatCompilation=68 -Xmx1G -XX:+IgnoreUnrecognizedVMOptions -XX:CompileCommand=quiet -XX:CompileCommand=compileonly,*Test*::* -XX:-TieredCompilation -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:+StressLCM -XX:+StressGCM -XX:+StressIGVN -XX:+StressCCP -XX:+StressMacroExpansion -XX:+UnlockExperimentalVMOptions -XX:PerMethodSpecTrapLimit=0 -XX:PerMethodTrapLimit=0 -XX:+VerifyLoopOptimizations -XX:VerifyIterativeGVN=10 -XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=/System/Volumes/Data/mesos/work_dir/jib-master/install/jdk/23/37/bundles/macos-x64/jdk-23_macos-x64_bin.tar.gz/jdk-23.jdk/Contents/Home -Djava.io.tmpdir=/System/Volumes/Data/mesos/work_dir/slaves/d228d36c-581b-4156-829e-5c5a441dd0ce-S496/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/60f6eafb-740c-4147-85e1-45e1183f6a4c/runs/32ca0ef2-d96d-43d1-8c76-c4135eb316a5/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_javafuzzer_LongRunningTests_java/tmp Test
      ............
      C2:1362 5 b Test::mainTest (673 bytes)

      Stack: [0x0000700003146000,0x0000700003246000], sp=0x0000700003241830, free space=1006k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.dylib+0x135338e] VMError::report(outputStream*, bool)+0x1eee (vectorization.cpp:142)
      V [libjvm.dylib+0x1357102] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void const*, void const*, char const*, int, unsigned long)+0x612
      V [libjvm.dylib+0x6d9ba8] report_vm_error(char const*, int, char const*, char const*, ...)+0xd8
      V [libjvm.dylib+0x13156e5] VLoop::check_preconditions_helper()+0x435
      V [libjvm.dylib+0x13151ed] VLoop::check_preconditions()+0x9d
      V [libjvm.dylib+0xe39bd1] PhaseIdealLoop::auto_vectorize(IdealLoopTree*, VSharedData&)+0xe1
      V [libjvm.dylib+0xe19391] PhaseIdealLoop::build_and_optimize()+0xe91
      V [libjvm.dylib+0x62cfd9] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x89
      V [libjvm.dylib+0x62d5c0] Compile::optimize_loops(PhaseIterGVN&, LoopOptsMode)+0x80
      V [libjvm.dylib+0x62525f] Compile::Optimize()+0xf0f
      V [libjvm.dylib+0x622a9d] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x186d
      V [libjvm.dylib+0x4e50c0] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x200
      V [libjvm.dylib+0x645372] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xc32
      V [libjvm.dylib+0x644317] CompileBroker::compiler_thread_loop()+0x3d7
      V [libjvm.dylib+0xa49b80] JavaThread::thread_main_inner()+0x1b0
      V [libjvm.dylib+0x12a089c] Thread::call_run()+0xbc
      V [libjvm.dylib+0xfe1f83] thread_native_entry(Thread*)+0x123
      C [libsystem_pthread.dylib+0x64e1] _pthread_start+0x7d
      C [libsystem_pthread.dylib+0x1f6b] thread_start+0xf

        1. Test.java
          8 kB
          Christian Hagedorn
        2. FuzzerUtils.java
          13 kB
          Christian Hagedorn
        3. hs_err_pid12893.log
          125 kB
          Christian Hagedorn
        4. Reduced.java
          0.4 kB
          Christian Hagedorn

            epeter Emanuel Peter
            chagedorn Christian Hagedorn
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: