$ 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.