diff -r 03622fc45677 -r f0e4c5b36ecd hotspot/test/compiler/whitebox/CompilerWhiteBoxTest.java --- a/hotspot/test/compiler/whitebox/CompilerWhiteBoxTest.java Thu Oct 16 12:57:04 2014 +0200 +++ b/hotspot/test/compiler/whitebox/CompilerWhiteBoxTest.java Fri Oct 17 10:04:45 2014 +0200 @@ -530,7 +530,7 @@ * @param e Executable * @throws Exception */ - private static void waitAndDeoptimize(Executable e) throws Exception { + private static void waitAndDeoptimize(Executable e) { CompilerWhiteBoxTest.waitBackgroundCompilation(e); if (WhiteBox.getWhiteBox().isMethodQueuedForCompilation(e)) { throw new RuntimeException(e + " must not be in queue"); @@ -554,8 +554,6 @@ for (long i = 0; i < CompilerWhiteBoxTest.OSR_WARMUP; ++i) { result += (int)m.invoke(helper, 1); } - // Deoptimize non-osr versions - waitAndDeoptimize(m); return result; } @@ -573,8 +571,6 @@ for (long i = 0; i < CompilerWhiteBoxTest.OSR_WARMUP; ++i) { result += c.newInstance(null, 1).hashCode(); } - // Deoptimize non-osr versions - waitAndDeoptimize(c); return result; } @@ -623,6 +619,11 @@ } 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; for (long i = 0; i < limit; ++i) { result += staticMethod(); @@ -631,6 +632,11 @@ } 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; for (long i = 0; i < limit; ++i) { result += method(); @@ -647,6 +653,11 @@ // for OSR constructor test case 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; for (long i = 0; i < limit; ++i) { result += method();