[Ping] Re: Request for Approval: Backport of 8146792 : Predicate moved after partial peel may lead to broken graph

Yangfei (Felix) felix.yang at huawei.com
Tue Aug 6 00:35:35 UTC 2019


This has passed jtreg test with a jdk8u fastdebug x86-64 build.  Is it OK to backport this?



Please approve the backport of 8146792 to 8u-dev.

This issue can always be reproduced with jdk built from the latest jdk8u master repo:

Test case reduced from one fuzz test:

public class Test {

    public static void foo() {

        int iArr1[]   = new int[10];

        int iArr2[][] = new int[10][10];

        for (long i = 0; i < 8; ++i) {

            iArr1[(int)i] = 10;

            for (int j = 0; j < 16; ++j) {

                iArr1 = iArr2[0];




    public static void main(String[] strArr) {

        for (int i = 0; i < 256; i++) {





Command line: java -XX:+UseSerialGC -XX:-TieredCompilation -XX:-RangeCheckElimination -XX:-BackgroundCompilation -XX:-UseOnStackReplacement -XX:LoopMaxUnroll=1 -XX:-UseCompressedClassPointers -XX:-UseCompressedOops -XX:CompileCommand=compileonly,Test::foo Test

JVM crashed due to bad C2 graph.  This issue will not trigger with -XX:-UseLoopPredicate.

      Bug: https://bugs.openjdk.java.net/browse/JDK-8146792

      JDK9 Changeset: http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/2748d975045f

      This backport is almost clean for the latest jdk8u master repo.



More information about the jdk8u-dev mailing list