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

CTW: C1 compilation fails with "too many stack slots used"

    Details

    • Subcomponent:
    • Resolved In Build:
      b20

      Description

      $ cd test/hotspot/jtreg/testlibrary/ctw
      $ make
      $ cd dist
      $ wget https://repo1.maven.org/maven2/com/sibvisions/jvx/jvxserver/2.8/jvxserver-2.6.jar
      $ JAVA_OPTIONS="-XX:+AbortVMOnCompilationFailure" ./ctw.sh jvxserver-2.6.jar

      # Internal Error (/home/shade/trunks/jdk-jdk/src/hotspot/share/compiler/compileBroker.cpp:2009), pid=20494, tid=20506
      # fatal error: Not compilable at tier 1: too many stack slots used
      #
      # JRE version: OpenJDK Runtime Environment (15.0) (fastdebug build 15-internal+0-adhoc.shade.jdk-jdk)
      # Java VM: OpenJDK 64-Bit Server VM (fastdebug 15-internal+0-adhoc.shade.jdk-jdk, mixed mode, sharing, tiered, compressed oops, shenandoah gc, linux-amd64)

      C1: 53149 8766 !b 1 com.sibvisions.rad.server.Server::process (2630 bytes)


      It blows this check in c1_LinearScan.cpp:

        // the class OopMapValue uses only 11 bits for storing the name of the
        // oop location. So a stack slot bigger than 2^11 leads to an overflow
        // that is not reported in product builds. Prevent this by checking the
        // spill slot here (altough this value and the later used location name
        // are slightly different)
        if (result > 2000) {
          bailout("too many stack slots used");
        }

      However, the OopMapValue storage had been extended in JDK-8231586. This check might be relaxed, I think.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jcm Jamsheed C M
                Reporter:
                shade Aleksey Shipilev
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: