< prev index next >

test/hotspot/jtreg/compiler/types/TestMeetIncompatibleInterfaceArrays.java

Print this page
rev 49267 : 8198915: [Graal] 3rd testcase of compiler/types/TestMeetIncompatibleInterfaceArrays.java takes more than 10 mins

*** 1,7 **** /* ! * Copyright (c) 2015 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2018 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 25,45 **** * @test * @bug 8141551 * @summary C2 can not handle returns with inccompatible interface arrays * @modules java.base/jdk.internal.org.objectweb.asm * java.base/jdk.internal.misc ! * @library /test/lib * * @build sun.hotspot.WhiteBox * @run driver ClassFileInstaller sun.hotspot.WhiteBox * sun.hotspot.WhiteBox$WhiteBoxPermission * @run main/othervm * -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI * -Xbatch - * -XX:CompileThreshold=1 * -XX:-TieredCompilation * -XX:CICompilerCount=1 * -XX:+PrintCompilation * -XX:+PrintInlining * -XX:CompileCommand=compileonly,MeetIncompatibleInterfaceArrays*::run --- 25,44 ---- * @test * @bug 8141551 * @summary C2 can not handle returns with inccompatible interface arrays * @modules java.base/jdk.internal.org.objectweb.asm * java.base/jdk.internal.misc ! * @library /test/lib / * * @build sun.hotspot.WhiteBox * @run driver ClassFileInstaller sun.hotspot.WhiteBox * sun.hotspot.WhiteBox$WhiteBoxPermission * @run main/othervm * -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI * -Xbatch * -XX:-TieredCompilation * -XX:CICompilerCount=1 * -XX:+PrintCompilation * -XX:+PrintInlining * -XX:CompileCommand=compileonly,MeetIncompatibleInterfaceArrays*::run
*** 49,59 **** * @run main/othervm * -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI * -Xbatch - * -XX:CompileThreshold=1 * -XX:-TieredCompilation * -XX:CICompilerCount=1 * -XX:+PrintCompilation * -XX:+PrintInlining * -XX:CompileCommand=compileonly,MeetIncompatibleInterfaceArrays*::run --- 48,57 ----
*** 63,77 **** * @run main/othervm * -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI * -Xbatch - * -XX:CompileThreshold=1 - * -XX:Tier0InvokeNotifyFreqLog=0 -XX:Tier2InvokeNotifyFreqLog=0 -XX:Tier3InvokeNotifyFreqLog=0 -XX:Tier23InlineeNotifyFreqLog=0 - * -XX:Tier3InvocationThreshold=2 -XX:Tier3MinInvocationThreshold=2 -XX:Tier3CompileThreshold=2 - * -XX:Tier4InvocationThreshold=1 -XX:Tier4MinInvocationThreshold=1 -XX:Tier4CompileThreshold=1 - * -XX:+TieredCompilation * -XX:CICompilerCount=2 * -XX:+PrintCompilation * -XX:+PrintInlining * -XX:CompileCommand=compileonly,MeetIncompatibleInterfaceArrays*::run * -XX:CompileCommand=compileonly,compiler.types.TestMeetIncompatibleInterfaceArrays$Helper::createI2* --- 61,70 ----
*** 82,91 **** --- 75,85 ---- * @author volker.simonis@gmail.com */ package compiler.types; + import compiler.whitebox.CompilerWhiteBoxTest; import jdk.internal.org.objectweb.asm.ClassWriter; import jdk.internal.org.objectweb.asm.MethodVisitor; import sun.hotspot.WhiteBox; import java.io.FileOutputStream;
*** 188,199 **** * public class MeetIncompatibleInterfaceArrays4ASM { * public static I1[][][][] run() { * return Helper.createI2Array3(); // returns I1[][][] which gives a verifier error because return expects I1[][][][] * } * public static void test() { ! * I1[][][][][] i1 = run(); ! * System.out.println(i1[0][0][0][0][0].getName()); * } * ... * public class MeetIncompatibleInterfaceArrays5ASM { * public static I1[][][][][] run() { * return Helper.createI2Array5(); // returns I2[][][][][] --- 182,193 ---- * public class MeetIncompatibleInterfaceArrays4ASM { * public static I1[][][][] run() { * return Helper.createI2Array3(); // returns I1[][][] which gives a verifier error because return expects I1[][][][] * } * public static void test() { ! * I1[][][][] i1 = run(); ! * System.out.println(i1[0][0][0][0].getName()); * } * ... * public class MeetIncompatibleInterfaceArrays5ASM { * public static I1[][][][][] run() { * return Helper.createI2Array5(); // returns I2[][][][][]
*** 304,316 **** fos.write(b); fos.close(); } ! public static String[][] tier = { { "interpreted", "C2 (tier 4) without inlining", "C2 (tier4) without inlining" }, ! { "interpreted", "C2 (tier 4) with inlining", "C2 (tier4) with inlining" }, ! { "interpreted", "C1 (tier 3) with inlining", "C2 (tier4) with inlining" } }; public static void main(String[] args) throws Exception { final int pass = Integer.parseInt(args.length > 0 ? args[0] : "0"); // Load and initialize some classes required for compilation --- 298,326 ---- fos.write(b); fos.close(); } ! public static String[][] tier = { { "interpreted (tier 0)", ! "C2 (tier 4) without inlining", ! "C2 (tier4) without inlining" }, ! { "interpreted (tier 0)", ! "C2 (tier 4) with inlining", ! "C2 (tier4) with inlining" }, ! { "interpreted (tier 0)", ! "C1 (tier 3) with inlining", ! "C2 (tier4) with inlining" } }; ! ! public static int[][] level = { { CompilerWhiteBoxTest.COMP_LEVEL_NONE, ! CompilerWhiteBoxTest.COMP_LEVEL_FULL_OPTIMIZATION, ! CompilerWhiteBoxTest.COMP_LEVEL_FULL_OPTIMIZATION }, ! { CompilerWhiteBoxTest.COMP_LEVEL_NONE, ! CompilerWhiteBoxTest.COMP_LEVEL_FULL_OPTIMIZATION, ! CompilerWhiteBoxTest.COMP_LEVEL_FULL_OPTIMIZATION }, ! { CompilerWhiteBoxTest.COMP_LEVEL_NONE, ! CompilerWhiteBoxTest.COMP_LEVEL_FULL_PROFILE, ! CompilerWhiteBoxTest.COMP_LEVEL_FULL_OPTIMIZATION } }; public static void main(String[] args) throws Exception { final int pass = Integer.parseInt(args.length > 0 ? args[0] : "0"); // Load and initialize some classes required for compilation
*** 342,353 **** } // Call MeetIncompatibleInterfaceArrays<i>ASM.test() Method m = c.getMethod("test"); Method r = c.getMethod("run"); for (int j = 0; j < 3; j++) { ! System.out.println((j + 1) + ". invokation of " + baseClassName + i + "ASM.test() [should be " ! + tier[pass][j] + "]"); try { m.invoke(null); } catch (InvocationTargetException ite) { if (good) { throw ite; --- 352,366 ---- } // Call MeetIncompatibleInterfaceArrays<i>ASM.test() Method m = c.getMethod("test"); Method r = c.getMethod("run"); for (int j = 0; j < 3; j++) { ! System.out.println((j + 1) + ". invokation of " + baseClassName + i + "ASM.test() [::" + ! r.getName() + "() should be '" + tier[pass][j] + "' compiled]"); ! ! WB.enqueueMethodForCompilation(r, level[pass][j]); ! try { m.invoke(null); } catch (InvocationTargetException ite) { if (good) { throw ite;
*** 358,371 **** } else { throw ite; } } } } ! System.out.println("Method " + r + (WB.isMethodCompiled(r) ? " has" : " has not") + " been compiled."); ! if (!WB.isMethodCompiled(r)) { ! throw new Exception("Method " + r + " must be compiled!"); } } } } } --- 371,390 ---- } else { throw ite; } } } + + int r_comp_level = WB.getMethodCompilationLevel(r); + System.out.println(" invokation of " + baseClassName + i + "ASM.test() [::" + + r.getName() + "() was compiled at tier " + r_comp_level + "]"); + + if (r_comp_level != level[pass][j]) { + throw new Exception("Method " + r + " must be compiled at tier " + r_comp_level + " !"); } ! ! WB.deoptimizeMethod(r); } } } } }
< prev index next >