OpenJDK / bsd-port / jdk9 / hotspot
changeset 8460:5657d2f88180
Merge
author | amurillo |
---|---|
date | Tue, 02 Jun 2015 09:15:32 -0700 |
parents | cce6baa7f903 84c51a26d201 |
children | 0e54ceabc6ea |
files | |
diffstat | 1 files changed, 23 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/test/compiler/stable/StableConfiguration.java Mon Jun 01 10:15:20 2015 -0700 +++ b/test/compiler/stable/StableConfiguration.java Tue Jun 02 09:15:32 2015 -0700 @@ -41,10 +41,32 @@ 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 { - Method m = StableConfiguration.class.getDeclaredMethod("get"); + get1(); + Method m = StableConfiguration.class.getDeclaredMethod("get1"); int level = WB.getMethodCompilationLevel(m); if (level > 0) { return (level == 4);