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

DeoptimizeALot causes fastdebug server jvm to fail with assert(false,"unscheduable graph")

XMLWordPrintable

    • b01
    • generic
    • generic
    • Verified

        DeoptimizeALot causes fastdebug server jvm to fail with different assertions.

        > java -server -Xcomp -XX:+DeoptimizeALot Tester11a
        !!! Unschedulable graph !!!
        B7 idom=B6 depth= 5 69 Region === 69 4 [[ 69 68 63 ]]
        B10 idom=B8 depth= 6 48 MachProj === 7 [[ 47 5 57 63 ]] #1/unmatched !jvms: Tester11a::main @ bci:10
        Failing node: 63 CreateException === 69 48 [[ 62 ]] java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull * !jvms: Tester11a::main @ bci:10
        # To suppress the following error report, specify this argument
        # after -XX: or in .hotspotrc: SuppressErrorAt=/gcm.cpp:107
        #
        # A fatal error has been detected by the Java Runtime Environment:
        #
        # Internal Error (/BUILD_AREA/jdk7/hotspot/src/share/vm/opto/gcm.cpp:107), pid=9833, tid=15
        # Error: assert(false,"unscheduable graph")


        Slightly modified version of Tester11a.java fails with:
        > java -server -Xcomp -XX:+DeoptimizeALot Tester11b
        # Internal Error (/BUILD_AREA/jdk7/hotspot/src/share/vm/opto/loopnode.hpp:638), pid=9865, tid=15
        # Error: assert(n != 0,"Bad immediate dominator info.")


        ----- Tester11a.java -----
        public class Tester11a
        {
           static long var_1 = 1L;

           public static void main(String[] args) throws Exception
           {
              short var_2 = (byte) 1.0E10;

              for ( Object temp = new byte[(byte)1.0E10]; true ;
                    var_2 = "1".equals("0") ? ((byte) var_1) : 1 )
              {}
           }
        }
        --------------------------

        ----- Tester11b.java -----
        public class Tester11b
        {
           public static void main(String[] args) throws Exception
           {
              long var_1 = -1L;

              short var_2 = (byte) 1.0E10;

              for ( Object temp = new byte[(byte)1.0E10]; true ;
                    var_2 = "1".equals("0") ? ((byte) var_1) : 1 )
              {}
           }
        }
        --------------------------

              kvn Vladimir Kozlov
              epavlova Ekaterina Pavlova
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: