--- a/hotspot/test/compiler/stable/StableConfiguration.java Tue Mar 22 10:43:58 2016 +0000
+++ b/hotspot/test/compiler/stable/StableConfiguration.java Tue Mar 22 17:04:25 2016 +0000
@@ -32,51 +32,10 @@
public class StableConfiguration {
static final WhiteBox WB = WhiteBox.getWhiteBox();
public static final boolean isStableEnabled;
- public static final boolean isServerWithStable;
static {
Boolean value = WB.getBooleanVMFlag("FoldStableValues");
isStableEnabled = (value == null ? false : value);
- isServerWithStable = isStableEnabled && get();
System.out.println("@Stable: " + (isStableEnabled ? "enabled" : "disabled"));
- System.out.println("Server Compiler: " + get());
- }
-
- // The method 'get' below returns true if the method is server compiled
- // and is used by the Stable tests to determine whether methods in
- // general are being server compiled or not as the -XX:+FoldStableValues
- // option is only applicable to -server.
- //
- // On aarch64 we DeOptimize when patching. This means that when the
- // method is compiled as a result of -Xcomp it DeOptimizes immediately.
- // The result is that getMethodCompilationLevel returns 0. This means
- // the method returns true based on java.vm.name.
- //
- // However when the tests are run with -XX:+TieredCompilation and
- // -XX:TieredStopAtLevel=1 this fails because methods will always
- // be client compiled.
- //
- // Solution is to add a simple method 'get1' which should never be
- // DeOpted and use that to determine the compilation level instead.
- static void get1() {
- }
-
- // ::get() is among immediately compiled methods.
- static boolean get() {
- try {
- get1();
- Method m = StableConfiguration.class.getDeclaredMethod("get1");
- int level = WB.getMethodCompilationLevel(m);
- if (level > 0) {
- return (level == 4);
- } else {
- String javaVM = System.getProperty("java.vm.name", "");
- if (javaVM.contains("Server")) return true;
- if (javaVM.contains("Client")) return false;
- throw new Error("Unknown VM type: "+javaVM);
- }
- } catch (NoSuchMethodException e) {
- throw new Error(e);
- }
}
}