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

C2 SuperWord: regression after JDK-8325155: failed: internal connection

XMLWordPrintable

    • b03

      [~roland] Reported a CTW failure, and I extracted it from the JAR / Classfile and created a JAVA reproducer.

      /oracle-work/jdk-fork2/build/linux-x64-debug/jdk/bin/java -XX:CompileCommand=compileonly,Test*::* -XX:CompileCommand=printcompilation,Test*::* -XX:CompileCommand=TraceAutoVectorization,*::*,PRECONDITIONS,BODY,SW_REJECTIONS,POINTERS,SW_PACKSET -XX:+TraceNewVectors -Xbatch -XX:+TraceLoopOpts TestY.java

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/oracle-work/jdk-fork2/open/src/hotspot/share/opto/superword.cpp:2781), pid=2060738, tid=2060752
      # assert(u_pk->at(i - 1) == u_pk->at(i)->in(1)) failed: internal connection
      #
      # JRE version: Java(TM) SE Runtime Environment (24.0) (fastdebug build 24-internal-2024-06-07-0517446.emanuel...)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 24-internal-2024-06-07-0517446.emanuel..., mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0x172f86f] SuperWord::is_vector_use(Node*, int) const+0x29f
      #
      # Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /oracle-work/jdk-fork2/build/linux-x64-debug/jdk/bin/core.2060738)
      #
      # An error report file with more information is saved as:
      # /oracle-work/jdk-fork2/build/linux-x64-debug/jdk/bin/hs_err_pid2060738.log
      #
      # Compiler replay data is saved as:
      # /oracle-work/jdk-fork2/build/linux-x64-debug/jdk/bin/replay_pid2060738.log
      #
      # If you would like to submit a bug report, please visit:
      # https://bugreport.java.com/bugreport/crash.jsp
      #

      The reason seems to be confusion around parallel reductions. I only expected packing inside a reduction. If they are packed across reductions that triggers the assert.

        1. hs_err_pid2060738.log
          82 kB
        2. replay_pid2060738.log
          252 kB
        3. TestY.java
          0.4 kB

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

              Created:
              Updated:
              Resolved: