< prev index next >
test/compiler/types/TestMeetIncompatibleInterfaceArrays.java
Print this page
rev 11557 : 8132919: use package in compiler tests
Reviewed-by: duke
*** 26,37 ****
* @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 /testlibrary /test/lib
* @build sun.hotspot.WhiteBox
! * @run main ClassFileInstaller sun.hotspot.WhiteBox
* sun.hotspot.WhiteBox$WhiteBoxPermission
* @run main/othervm
* -Xbootclasspath/a:.
* -XX:+UnlockDiagnosticVMOptions
* -XX:+WhiteBoxAPI
--- 26,38 ----
* @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 /testlibrary /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
*** 39,52 ****
* -XX:CompileThreshold=1
* -XX:-TieredCompilation
* -XX:CICompilerCount=1
* -XX:+PrintCompilation
* -XX:+PrintInlining
! * -XX:CompileCommand=compileonly,MeetIncompatibleInterfaceArrays*.run
! * -XX:CompileCommand=dontinline,TestMeetIncompatibleInterfaceArrays$Helper.createI2*
* -XX:CompileCommand=quiet
! * TestMeetIncompatibleInterfaceArrays 0
* @run main/othervm
* -Xbootclasspath/a:.
* -XX:+UnlockDiagnosticVMOptions
* -XX:+WhiteBoxAPI
* -Xbatch
--- 40,53 ----
* -XX:CompileThreshold=1
* -XX:-TieredCompilation
* -XX:CICompilerCount=1
* -XX:+PrintCompilation
* -XX:+PrintInlining
! * -XX:CompileCommand=compileonly,MeetIncompatibleInterfaceArrays*::run
! * -XX:CompileCommand=dontinline,compiler.types.TestMeetIncompatibleInterfaceArrays$Helper::createI2*
* -XX:CompileCommand=quiet
! * compiler.types.TestMeetIncompatibleInterfaceArrays 0
* @run main/othervm
* -Xbootclasspath/a:.
* -XX:+UnlockDiagnosticVMOptions
* -XX:+WhiteBoxAPI
* -Xbatch
*** 53,66 ****
* -XX:CompileThreshold=1
* -XX:-TieredCompilation
* -XX:CICompilerCount=1
* -XX:+PrintCompilation
* -XX:+PrintInlining
! * -XX:CompileCommand=compileonly,MeetIncompatibleInterfaceArrays*.run
! * -XX:CompileCommand=inline,TestMeetIncompatibleInterfaceArrays$Helper.createI2*
* -XX:CompileCommand=quiet
! * TestMeetIncompatibleInterfaceArrays 1
* @run main/othervm
* -Xbootclasspath/a:.
* -XX:+UnlockDiagnosticVMOptions
* -XX:+WhiteBoxAPI
* -Xbatch
--- 54,67 ----
* -XX:CompileThreshold=1
* -XX:-TieredCompilation
* -XX:CICompilerCount=1
* -XX:+PrintCompilation
* -XX:+PrintInlining
! * -XX:CompileCommand=compileonly,MeetIncompatibleInterfaceArrays*::run
! * -XX:CompileCommand=inline,compiler.types.TestMeetIncompatibleInterfaceArrays$Helper::createI2*
* -XX:CompileCommand=quiet
! * compiler.types.TestMeetIncompatibleInterfaceArrays 1
* @run main/othervm
* -Xbootclasspath/a:.
* -XX:+UnlockDiagnosticVMOptions
* -XX:+WhiteBoxAPI
* -Xbatch
*** 70,96 ****
* -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,TestMeetIncompatibleInterfaceArrays$Helper.createI2*
! * -XX:CompileCommand=inline,TestMeetIncompatibleInterfaceArrays$Helper.createI2*
* -XX:CompileCommand=quiet
! * TestMeetIncompatibleInterfaceArrays 2
*
* @author volker.simonis@gmail.com
*/
! import java.io.FileOutputStream;
! import java.lang.reflect.InvocationTargetException;
! import java.lang.reflect.Method;
import jdk.internal.org.objectweb.asm.ClassWriter;
import jdk.internal.org.objectweb.asm.MethodVisitor;
- import static jdk.internal.org.objectweb.asm.Opcodes.*;
import sun.hotspot.WhiteBox;
public class TestMeetIncompatibleInterfaceArrays extends ClassLoader {
private static final WhiteBox WB = WhiteBox.getWhiteBox();
public static interface I1 { public String getName(); }
--- 71,114 ----
* -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*
! * -XX:CompileCommand=inline,compiler.types.TestMeetIncompatibleInterfaceArrays$Helper::createI2*
* -XX:CompileCommand=quiet
! * compiler.types.TestMeetIncompatibleInterfaceArrays 2
*
* @author volker.simonis@gmail.com
*/
! package compiler.types;
!
import jdk.internal.org.objectweb.asm.ClassWriter;
import jdk.internal.org.objectweb.asm.MethodVisitor;
import sun.hotspot.WhiteBox;
+ import java.io.FileOutputStream;
+ import java.lang.reflect.InvocationTargetException;
+ import java.lang.reflect.Method;
+
+ import static jdk.internal.org.objectweb.asm.Opcodes.AALOAD;
+ import static jdk.internal.org.objectweb.asm.Opcodes.ACC_PUBLIC;
+ import static jdk.internal.org.objectweb.asm.Opcodes.ACC_STATIC;
+ import static jdk.internal.org.objectweb.asm.Opcodes.ALOAD;
+ import static jdk.internal.org.objectweb.asm.Opcodes.ARETURN;
+ import static jdk.internal.org.objectweb.asm.Opcodes.ASTORE;
+ import static jdk.internal.org.objectweb.asm.Opcodes.GETSTATIC;
+ import static jdk.internal.org.objectweb.asm.Opcodes.ICONST_0;
+ import static jdk.internal.org.objectweb.asm.Opcodes.INVOKEINTERFACE;
+ import static jdk.internal.org.objectweb.asm.Opcodes.INVOKESPECIAL;
+ import static jdk.internal.org.objectweb.asm.Opcodes.INVOKESTATIC;
+ import static jdk.internal.org.objectweb.asm.Opcodes.INVOKEVIRTUAL;
+ import static jdk.internal.org.objectweb.asm.Opcodes.RETURN;
+ import static jdk.internal.org.objectweb.asm.Opcodes.V1_8;
+
public class TestMeetIncompatibleInterfaceArrays extends ClassLoader {
private static final WhiteBox WB = WhiteBox.getWhiteBox();
public static interface I1 { public String getName(); }
*** 243,268 ****
constr.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
constr.visitInsn(RETURN);
constr.visitMaxs(0, 0);
constr.visitEnd();
MethodVisitor run = cw.visitMethod(ACC_PUBLIC | ACC_STATIC, "run",
! "()" + a + "LTestMeetIncompatibleInterfaceArrays$I1;", null, null);
run.visitCode();
if (dim == 4) {
! run.visitMethodInsn(INVOKESTATIC, "TestMeetIncompatibleInterfaceArrays$Helper", createName + 3,
! "()" + "[[[" + "LTestMeetIncompatibleInterfaceArrays$I2;", false);
} else {
! run.visitMethodInsn(INVOKESTATIC, "TestMeetIncompatibleInterfaceArrays$Helper", createName + dim,
! "()" + a + "LTestMeetIncompatibleInterfaceArrays$I2;", false);
}
run.visitInsn(ARETURN);
run.visitMaxs(0, 0);
run.visitEnd();
MethodVisitor test = cw.visitMethod(ACC_PUBLIC | ACC_STATIC, "test", "()V", null, null);
test.visitCode();
test.visitMethodInsn(INVOKESTATIC, baseClassName + dim + "ASM", "run",
! "()" + a + "LTestMeetIncompatibleInterfaceArrays$I1;", false);
test.visitVarInsn(ASTORE, 0);
if (dim > 0) {
test.visitVarInsn(ALOAD, 0);
for (int i = 1; i <= dim; i++) {
test.visitInsn(ICONST_0);
--- 261,286 ----
constr.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
constr.visitInsn(RETURN);
constr.visitMaxs(0, 0);
constr.visitEnd();
MethodVisitor run = cw.visitMethod(ACC_PUBLIC | ACC_STATIC, "run",
! "()" + a + "Lcompiler/types/TestMeetIncompatibleInterfaceArrays$I1;", null, null);
run.visitCode();
if (dim == 4) {
! run.visitMethodInsn(INVOKESTATIC, "compiler/types/TestMeetIncompatibleInterfaceArrays$Helper", createName + 3,
! "()" + "[[[" + "Lcompiler/types/TestMeetIncompatibleInterfaceArrays$I2;", false);
} else {
! run.visitMethodInsn(INVOKESTATIC, "compiler/types/TestMeetIncompatibleInterfaceArrays$Helper", createName + dim,
! "()" + a + "Lcompiler/types/TestMeetIncompatibleInterfaceArrays$I2;", false);
}
run.visitInsn(ARETURN);
run.visitMaxs(0, 0);
run.visitEnd();
MethodVisitor test = cw.visitMethod(ACC_PUBLIC | ACC_STATIC, "test", "()V", null, null);
test.visitCode();
test.visitMethodInsn(INVOKESTATIC, baseClassName + dim + "ASM", "run",
! "()" + a + "Lcompiler/types/TestMeetIncompatibleInterfaceArrays$I1;", false);
test.visitVarInsn(ASTORE, 0);
if (dim > 0) {
test.visitVarInsn(ALOAD, 0);
for (int i = 1; i <= dim; i++) {
test.visitInsn(ICONST_0);
*** 270,280 ****
}
test.visitVarInsn(ASTORE, 1);
}
test.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
test.visitVarInsn(ALOAD, dim > 0 ? 1 : 0);
! test.visitMethodInsn(INVOKEINTERFACE, "TestMeetIncompatibleInterfaceArrays$I1", "getName",
"()Ljava/lang/String;", true);
test.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/Object;)V", false);
test.visitInsn(RETURN);
test.visitMaxs(0, 0);
test.visitEnd();
--- 288,298 ----
}
test.visitVarInsn(ASTORE, 1);
}
test.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
test.visitVarInsn(ALOAD, dim > 0 ? 1 : 0);
! test.visitMethodInsn(INVOKEINTERFACE, "compiler/types/TestMeetIncompatibleInterfaceArrays$I1", "getName",
"()Ljava/lang/String;", true);
test.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/Object;)V", false);
test.visitInsn(RETURN);
test.visitMaxs(0, 0);
test.visitEnd();
*** 294,306 ****
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
! Class.forName("TestMeetIncompatibleInterfaceArrays$I1");
! Class.forName("TestMeetIncompatibleInterfaceArrays$I2");
! Class.forName("TestMeetIncompatibleInterfaceArrays$Helper");
for (int g = 0; g < 2; g++) {
String baseClassName = "MeetIncompatibleInterfaceArrays";
boolean good = (g == 0) ? false : true;
if (good)
--- 312,324 ----
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
! Class.forName("compiler.types.TestMeetIncompatibleInterfaceArrays$I1");
! Class.forName("compiler.types.TestMeetIncompatibleInterfaceArrays$I2");
! Class.forName("compiler.types.TestMeetIncompatibleInterfaceArrays$Helper");
for (int g = 0; g < 2; g++) {
String baseClassName = "MeetIncompatibleInterfaceArrays";
boolean good = (g == 0) ? false : true;
if (good)
< prev index next >