< prev index next >
test/hotspot/jtreg/compiler/valhalla/valuetypes/ValueTypeTest.java
Print this page
*** 90,118 ****
// Random test values
public static final int rI = Utils.getRandomInstance().nextInt() % 1000;
public static final long rL = Utils.getRandomInstance().nextLong() % 1000;
// User defined settings
private static final boolean PRINT_GRAPH = true;
private static final boolean PRINT_TIMES = Boolean.parseBoolean(System.getProperty("PrintTimes", "false"));
! private static boolean VERIFY_IR = Boolean.parseBoolean(System.getProperty("VerifyIR", "true")) && (!TEST_C1);
private static final boolean VERIFY_VM = Boolean.parseBoolean(System.getProperty("VerifyVM", "false"));
private static final String SCENARIOS = System.getProperty("Scenarios", "");
private static final String TESTLIST = System.getProperty("Testlist", "");
private static final String EXCLUDELIST = System.getProperty("Exclude", "");
private static final int WARMUP = Integer.parseInt(System.getProperty("Warmup", "251"));
private static final boolean DUMP_REPLAY = Boolean.parseBoolean(System.getProperty("DumpReplay", "false"));
// Pre-defined settings
private static final List<String> defaultFlags = Arrays.asList(
"-XX:-BackgroundCompilation", "-XX:CICompilerCount=1",
- "-XX:+PrintCompilation", "-XX:+PrintIdeal", "-XX:+PrintOptoAssembly",
"-XX:CompileCommand=quiet",
"-XX:CompileCommand=compileonly,java.lang.invoke.*::*",
"-XX:CompileCommand=compileonly,java.lang.Long::sum",
"-XX:CompileCommand=compileonly,java.lang.Object::<init>",
"-XX:CompileCommand=compileonly,compiler.valhalla.valuetypes.*::*");
private static final List<String> verifyFlags = Arrays.asList(
"-XX:+VerifyOops", "-XX:+VerifyStack", "-XX:+VerifyLastFrame", "-XX:+VerifyBeforeGC", "-XX:+VerifyAfterGC",
"-XX:+VerifyDuringGC", "-XX:+VerifyAdapterSharing", "-XX:+StressValueTypeReturnedAsFields");
protected static final WhiteBox WHITE_BOX = WhiteBox.getWhiteBox();
--- 90,120 ----
// Random test values
public static final int rI = Utils.getRandomInstance().nextInt() % 1000;
public static final long rL = Utils.getRandomInstance().nextLong() % 1000;
// User defined settings
+ protected static final boolean XCOMP = Platform.isComp();
private static final boolean PRINT_GRAPH = true;
private static final boolean PRINT_TIMES = Boolean.parseBoolean(System.getProperty("PrintTimes", "false"));
! private static boolean VERIFY_IR = Boolean.parseBoolean(System.getProperty("VerifyIR", "true")) && !TEST_C1 && !XCOMP;
private static final boolean VERIFY_VM = Boolean.parseBoolean(System.getProperty("VerifyVM", "false"));
private static final String SCENARIOS = System.getProperty("Scenarios", "");
private static final String TESTLIST = System.getProperty("Testlist", "");
private static final String EXCLUDELIST = System.getProperty("Exclude", "");
private static final int WARMUP = Integer.parseInt(System.getProperty("Warmup", "251"));
private static final boolean DUMP_REPLAY = Boolean.parseBoolean(System.getProperty("DumpReplay", "false"));
// Pre-defined settings
private static final List<String> defaultFlags = Arrays.asList(
"-XX:-BackgroundCompilation", "-XX:CICompilerCount=1",
"-XX:CompileCommand=quiet",
"-XX:CompileCommand=compileonly,java.lang.invoke.*::*",
"-XX:CompileCommand=compileonly,java.lang.Long::sum",
"-XX:CompileCommand=compileonly,java.lang.Object::<init>",
"-XX:CompileCommand=compileonly,compiler.valhalla.valuetypes.*::*");
+ private static final List<String> printFlags = Arrays.asList(
+ "-XX:+PrintCompilation", "-XX:+PrintIdeal", "-XX:+PrintOptoAssembly");
private static final List<String> verifyFlags = Arrays.asList(
"-XX:+VerifyOops", "-XX:+VerifyStack", "-XX:+VerifyLastFrame", "-XX:+VerifyBeforeGC", "-XX:+VerifyAfterGC",
"-XX:+VerifyDuringGC", "-XX:+VerifyAdapterSharing", "-XX:+StressValueTypeReturnedAsFields");
protected static final WhiteBox WHITE_BOX = WhiteBox.getWhiteBox();
*** 120,139 ****
protected static final int ValueTypePassFieldsAsArgsOff = 0x2;
protected static final int ValueTypeArrayFlattenOn = 0x4;
protected static final int ValueTypeArrayFlattenOff = 0x8;
protected static final int ValueTypeReturnedAsFieldsOn = 0x10;
protected static final int ValueTypeReturnedAsFieldsOff = 0x20;
static final int AllFlags = ValueTypePassFieldsAsArgsOn | ValueTypePassFieldsAsArgsOff | ValueTypeArrayFlattenOn | ValueTypeArrayFlattenOff | ValueTypeReturnedAsFieldsOn;
protected static final boolean ValueTypePassFieldsAsArgs = (Boolean)WHITE_BOX.getVMFlag("ValueTypePassFieldsAsArgs");
protected static final boolean ValueTypeArrayFlatten = (Boolean)WHITE_BOX.getVMFlag("ValueArrayFlatten");
protected static final boolean ValueTypeReturnedAsFields = (Boolean)WHITE_BOX.getVMFlag("ValueTypeReturnedAsFields");
protected static final int COMP_LEVEL_ANY = -2;
protected static final int COMP_LEVEL_FULL_OPTIMIZATION = TEST_C1 ? 1 : 4;
protected static final Hashtable<String, Method> tests = new Hashtable<String, Method>();
protected static final boolean USE_COMPILER = WHITE_BOX.getBooleanVMFlag("UseCompiler");
protected static final boolean PRINT_IDEAL = WHITE_BOX.getBooleanVMFlag("PrintIdeal");
- protected static final boolean XCOMP = Platform.isComp();
// Regular expressions used to match nodes in the PrintIdeal output
protected static final String START = "(\\d+\\t(.*";
protected static final String MID = ".*)+\\t===.*";
protected static final String END = ")|";
--- 122,143 ----
protected static final int ValueTypePassFieldsAsArgsOff = 0x2;
protected static final int ValueTypeArrayFlattenOn = 0x4;
protected static final int ValueTypeArrayFlattenOff = 0x8;
protected static final int ValueTypeReturnedAsFieldsOn = 0x10;
protected static final int ValueTypeReturnedAsFieldsOff = 0x20;
+ protected static final int AlwaysIncrementalInlineOn = 0x40;
+ protected static final int AlwaysIncrementalInlineOff = 0x80;
static final int AllFlags = ValueTypePassFieldsAsArgsOn | ValueTypePassFieldsAsArgsOff | ValueTypeArrayFlattenOn | ValueTypeArrayFlattenOff | ValueTypeReturnedAsFieldsOn;
protected static final boolean ValueTypePassFieldsAsArgs = (Boolean)WHITE_BOX.getVMFlag("ValueTypePassFieldsAsArgs");
protected static final boolean ValueTypeArrayFlatten = (Boolean)WHITE_BOX.getVMFlag("ValueArrayFlatten");
protected static final boolean ValueTypeReturnedAsFields = (Boolean)WHITE_BOX.getVMFlag("ValueTypeReturnedAsFields");
+ protected static final boolean AlwaysIncrementalInline = (Boolean)WHITE_BOX.getVMFlag("AlwaysIncrementalInline");
protected static final int COMP_LEVEL_ANY = -2;
protected static final int COMP_LEVEL_FULL_OPTIMIZATION = TEST_C1 ? 1 : 4;
protected static final Hashtable<String, Method> tests = new Hashtable<String, Method>();
protected static final boolean USE_COMPILER = WHITE_BOX.getBooleanVMFlag("UseCompiler");
protected static final boolean PRINT_IDEAL = WHITE_BOX.getBooleanVMFlag("PrintIdeal");
// Regular expressions used to match nodes in the PrintIdeal output
protected static final String START = "(\\d+\\t(.*";
protected static final String MID = ".*)+\\t===.*";
protected static final String END = ")|";
*** 307,339 ****
private void execute_vm() throws Throwable {
Asserts.assertFalse(tests.isEmpty(), "no tests to execute");
ArrayList<String> args = new ArrayList<String>(defaultFlags);
String[] vmInputArgs = InputArguments.getVmInputArgs();
- if (VERIFY_IR) {
for (String arg : vmInputArgs) {
if (arg.startsWith("-XX:CompileThreshold")) {
! // Disable IR verification if
! VERIFY_IR = false;
! }
! // Check if the JVM supports value type specific default arguments from the test's run commands
! if (arg.startsWith("-XX:+ValueTypePassFieldsAsArgs") ||
! arg.startsWith("-XX:+ValueTypeReturnedAsFields")) {
! Boolean value = (Boolean)WHITE_BOX.getVMFlag(arg.substring(5));
! if (!value) {
! System.out.println("WARNING: could not enable " + arg.substring(5) + ". Skipping IR verification.");
! VERIFY_IR = false;
! }
! } else if (arg.startsWith("-XX:-ValueTypePassFieldsAsArgs") ||
! arg.startsWith("-XX:-ValueTypeReturnedAsFields")) {
! Boolean value = (Boolean)WHITE_BOX.getVMFlag(arg.substring(5));
! if (value) {
! System.out.println("WARNING: could not disable " + arg.substring(5) + ". Skipping IR verification.");
VERIFY_IR = false;
}
}
! }
// Always trap for exception throwing to not confuse IR verification
args.add("-XX:-OmitStackTraceInFastThrow");
}
if (VERIFY_VM) {
args.addAll(verifyFlags);
--- 311,329 ----
private void execute_vm() throws Throwable {
Asserts.assertFalse(tests.isEmpty(), "no tests to execute");
ArrayList<String> args = new ArrayList<String>(defaultFlags);
String[] vmInputArgs = InputArguments.getVmInputArgs();
for (String arg : vmInputArgs) {
if (arg.startsWith("-XX:CompileThreshold")) {
! // Disable IR verification if non-default CompileThreshold is set
VERIFY_IR = false;
}
}
! if (VERIFY_IR) {
! // Add print flags for IR verification
! args.addAll(printFlags);
// Always trap for exception throwing to not confuse IR verification
args.add("-XX:-OmitStackTraceInFastThrow");
}
if (VERIFY_VM) {
args.addAll(verifyFlags);
*** 415,424 ****
--- 405,420 ----
assert anno == null;
anno = a;
} else if ((a.valid() & ValueTypeReturnedAsFieldsOff) != 0 && !ValueTypeReturnedAsFields) {
assert anno == null;
anno = a;
+ } else if ((a.valid() & AlwaysIncrementalInlineOn) != 0 && AlwaysIncrementalInline) {
+ assert anno == null;
+ anno = a;
+ } else if ((a.valid() & AlwaysIncrementalInlineOff) != 0 && !AlwaysIncrementalInline) {
+ assert anno == null;
+ anno = a;
}
}
assert anno != null;
String regexFail = anno.failOn();
if (!regexFail.isEmpty()) {
< prev index next >