提交 b7d00208 编写于 作者: T thartmann

8060454: [TESTBUG] Whitebox tests fail with -XX:CompileThreshold=100

Summary: Move the call to 'waitAndDeoptimize' from the warmup methods to the osr triggering methods to make sure that no non-osr compilation is in the queue after warmup.
Reviewed-by: kvn
上级 0a7368fc
...@@ -541,7 +541,7 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase { ...@@ -541,7 +541,7 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase {
* @param e Executable * @param e Executable
* @throws Exception * @throws Exception
*/ */
private static void waitAndDeoptimize(Executable e) throws Exception { private static void waitAndDeoptimize(Executable e) {
CompilerWhiteBoxTest.waitBackgroundCompilation(e); CompilerWhiteBoxTest.waitBackgroundCompilation(e);
if (WhiteBox.getWhiteBox().isMethodQueuedForCompilation(e)) { if (WhiteBox.getWhiteBox().isMethodQueuedForCompilation(e)) {
throw new RuntimeException(e + " must not be in queue"); throw new RuntimeException(e + " must not be in queue");
...@@ -565,8 +565,6 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase { ...@@ -565,8 +565,6 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase {
for (long i = 0; i < CompilerWhiteBoxTest.OSR_WARMUP; ++i) { for (long i = 0; i < CompilerWhiteBoxTest.OSR_WARMUP; ++i) {
result += (int)m.invoke(helper, 1); result += (int)m.invoke(helper, 1);
} }
// Deoptimize non-osr versions
waitAndDeoptimize(m);
return result; return result;
} }
...@@ -584,8 +582,6 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase { ...@@ -584,8 +582,6 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase {
for (long i = 0; i < CompilerWhiteBoxTest.OSR_WARMUP; ++i) { for (long i = 0; i < CompilerWhiteBoxTest.OSR_WARMUP; ++i) {
result += c.newInstance(null, 1).hashCode(); result += c.newInstance(null, 1).hashCode();
} }
// Deoptimize non-osr versions
waitAndDeoptimize(c);
return result; return result;
} }
...@@ -634,6 +630,11 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase { ...@@ -634,6 +630,11 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase {
} }
private static int osrStaticMethod(long limit) { private static int osrStaticMethod(long limit) {
if (limit != 1) {
// Make sure there is no compiled version after warmup
waitAndDeoptimize(OSR_STATIC);
}
// Trigger osr compilation
int result = 0; int result = 0;
for (long i = 0; i < limit; ++i) { for (long i = 0; i < limit; ++i) {
result += staticMethod(); result += staticMethod();
...@@ -642,6 +643,11 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase { ...@@ -642,6 +643,11 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase {
} }
private int osrMethod(long limit) { private int osrMethod(long limit) {
if (limit != 1) {
// Make sure there is no compiled version after warmup
waitAndDeoptimize(OSR_METHOD);
}
// Trigger osr compilation
int result = 0; int result = 0;
for (long i = 0; i < limit; ++i) { for (long i = 0; i < limit; ++i) {
result += method(); result += method();
...@@ -658,6 +664,11 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase { ...@@ -658,6 +664,11 @@ enum SimpleTestCase implements CompilerWhiteBoxTest.TestCase {
// for OSR constructor test case // for OSR constructor test case
private Helper(Object o, long limit) { private Helper(Object o, long limit) {
if (limit != 1) {
// Make sure there is no compiled version after warmup
waitAndDeoptimize(OSR_CONSTRUCTOR);
}
// Trigger osr compilation
int result = 0; int result = 0;
for (long i = 0; i < limit; ++i) { for (long i = 0; i < limit; ++i) {
result += method(); result += method();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册