*** 99,10 *** --- 99,11 --- private static final boolean SHUFFLE_TESTS = Boolean.parseBoolean(System.getProperty("ShuffleTests", "true")); // Use separate flag as VERIFY_IR could have been set by user but due to other flags it was disabled by flag VM. private static final boolean PRINT_VALID_IR_RULES = Boolean.getBoolean("ShouldDoIRVerification"); protected static final long PER_METHOD_TRAP_LIMIT = (Long)WHITE_BOX.getVMFlag("PerMethodTrapLimit"); protected static final boolean PROFILE_INTERPRETER = (Boolean)WHITE_BOX.getVMFlag("ProfileInterpreter"); + protected static final boolean DEOPT_BARRIERS_ALOT = (Boolean)WHITE_BOX.getVMFlag("DeoptimizeNMethodBarriersALot"); private static final boolean FLIP_C1_C2 = Boolean.getBoolean("FlipC1C2"); private static final boolean IGNORE_COMPILER_CONTROLS = Boolean.getBoolean("IgnoreCompilerControls"); private final HashMap<Method, DeclaredTest> declaredTests = new HashMap<>(); private final List<AbstractTest> allTests = new ArrayList<>();
*** 248,12 *** checkForcedCompilationsCompleted(); runTests(); } private void setupTests() { ! for (Class<?> clazz : testClass.getDeclaredClasses()) { ! checkAnnotationsInClass(clazz, "inner"); } if (DUMP_REPLAY) { addReplay(); } // Make sure to first setup test methods and make them non-inlineable and only then process compile commands. --- 249,15 --- checkForcedCompilationsCompleted(); runTests(); } private void setupTests() { ! // TODO remove this once JDK-8273591 is fixed ! if (!IGNORE_COMPILER_CONTROLS) { + for (Class<?> clazz : testClass.getDeclaredClasses()) { + checkAnnotationsInClass(clazz, "inner"); + } } if (DUMP_REPLAY) { addReplay(); } // Make sure to first setup test methods and make them non-inlineable and only then process compile commands.
*** 893,28 *** public static boolean isCompiledAtLevel(Method m, CompLevel compLevel) { return compiledAtLevel(m, compLevel) == TriState.Yes; } public static void assertDeoptimizedByC1(Method m) { ! if (notUnstableDeoptAssertion(m, CompLevel.C1_SIMPLE)) { ! TestRun.check(compiledByC1(m) != TriState.Yes || PER_METHOD_TRAP_LIMIT == 0 || !PROFILE_INTERPRETER, - m + " should have been deoptimized by C1"); } } public static void assertDeoptimizedByC2(Method m) { ! if (notUnstableDeoptAssertion(m, CompLevel.C2)) { ! TestRun.check(compiledByC2(m) != TriState.Yes || PER_METHOD_TRAP_LIMIT == 0 || !PROFILE_INTERPRETER, - m + " should have been deoptimized by C2"); } } /** * Some VM flags could make the deopt assertions unstable. */ ! private static boolean notUnstableDeoptAssertion(Method m, CompLevel level) { return (USE_COMPILER && !XCOMP && !IGNORE_COMPILER_CONTROLS && !TEST_C1 && (!EXCLUDE_RANDOM || WHITE_BOX.isMethodCompilable(m, level.getValue(), false))); } public static void assertCompiledByC1(Method m) { TestRun.check(compiledByC1(m) != TriState.No, m + " should have been C1 compiled"); --- 897,27 --- public static boolean isCompiledAtLevel(Method m, CompLevel compLevel) { return compiledAtLevel(m, compLevel) == TriState.Yes; } public static void assertDeoptimizedByC1(Method m) { ! if (isStableDeopt(m, CompLevel.C1_SIMPLE)) { ! TestRun.check(compiledByC1(m) != TriState.Yes, m + " should have been deoptimized by C1"); } } public static void assertDeoptimizedByC2(Method m) { ! if (isStableDeopt(m, CompLevel.C2)) { ! TestRun.check(compiledByC2(m) != TriState.Yes, m + " should have been deoptimized by C2"); } } /** * Some VM flags could make the deopt assertions unstable. */ ! public static boolean isStableDeopt(Method m, CompLevel level) { return (USE_COMPILER && !XCOMP && !IGNORE_COMPILER_CONTROLS && !TEST_C1 && + PER_METHOD_TRAP_LIMIT != 0 && PROFILE_INTERPRETER && !DEOPT_BARRIERS_ALOT && (!EXCLUDE_RANDOM || WHITE_BOX.isMethodCompilable(m, level.getValue(), false))); } public static void assertCompiledByC1(Method m) { TestRun.check(compiledByC1(m) != TriState.No, m + " should have been C1 compiled");
*** 966,11 *** return TriState.Yes; } default -> throw new TestRunException("compiledAtLevel() should not be called with " + level); } } ! if (!USE_COMPILER || XCOMP || TEST_C1 || IGNORE_COMPILER_CONTROLS || FLIP_C1_C2 || (EXCLUDE_RANDOM && !WHITE_BOX.isMethodCompilable(m, level.getValue(), false))) { return TriState.Maybe; } return TriState.No; } --- 969,11 --- return TriState.Yes; } default -> throw new TestRunException("compiledAtLevel() should not be called with " + level); } } ! if (!USE_COMPILER || XCOMP || TEST_C1 || IGNORE_COMPILER_CONTROLS || FLIP_C1_C2 || DEOPT_BARRIERS_ALOT || (EXCLUDE_RANDOM && !WHITE_BOX.isMethodCompilable(m, level.getValue(), false))) { return TriState.Maybe; } return TriState.No; }