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

ARM32: vector intrinsics reaches ShouldNotReachHere

XMLWordPrintable

    • b26
    • aarch32
    • linux

      ARM32: vector intrinsics reaches ShouldNotReachHere

      On 32-bit ARM, the vector intrinsics in C2 reach ShouldNotReachHere:

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (arm.ad:1023), pid=623, tid=631
      # Error: ShouldNotReachHere()
      #
      # JRE version: OpenJDK Runtime Environment (17.0+22) (build 17-internal+22-ahead-408--dd34a4c28da73c798e021c7473ac57ead56c9903)
      # Java VM: OpenJDK Server VM (17-internal+22-ahead-408--dd34a4c28da73c798e021c7473ac57ead56c9903, mixed mode, serial gc, linux-arm)
      # Problematic frame:
      # V [libjvm.so+0xc3fb0] Matcher::vector_ideal_reg(int)+0x44
      #
      # Core dump will be written. Default location: Core dumps may be processed with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h" (or dumping to /home/microdoc/cgo/core.623)
      #
      # An error report file with more information is saved as:
      # /home/microdoc/cgo/hs_err_pid623.log
      #
      # Compiler replay data is saved as:
      # /home/microdoc/cgo/replay_pid623.log
      #
      # If you would like to submit a bug report, please visit:
      # https://bugreport.java.com/bugreport/crash.jsp
      #

      This is due to the fact, that on ARM32, "Matcher::match_rule_supported_vector" does not check for the supported length of vector operations, hence vector operations are created, even if the size is not supported. All other architectures are performing this check.

      In a debug VM, this is situation is caught a bit earlier, by an assert in TypeVect::make

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/home/cgo/dev/openjdk/jdk/src/hotspot/share/opto/type.cpp:2351), pid=506, tid=517
      # assert(Matcher::vector_size_supported(elem_bt, length)) failed: length in range
      #
      # JRE version: OpenJDK Runtime Environment (17.0+22) (slowdebug build 17-internal+22-ahead-408--dd34a4c28da73c798e021c7473ac57ead56c9903)
      # Java VM: OpenJDK Server VM (slowdebug 17-internal+22-ahead-408--dd34a4c28da73c798e021c7473ac57ead56c9903, mixed mode, serial gc, linux-arm)
      # Problematic frame:
      # V [libjvm.so+0xf2c274] TypeVect::make(Type const*, unsigned int)+0xb0
      #
      # Core dump will be written. Default location: Core dumps may be processed with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h" (or dumping to /home/microdoc/cgo/core.506)
      #
      # If you would like to submit a bug report, please visit:
      # https://bugreport.java.com/bugreport/crash.jsp
      #

      This happens for many jdk_vector jtreg test cases.

            cgo Christoph Göttschkes (Inactive)
            cgo Christoph Göttschkes (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: