8179656: [AOT] Add AOT manual test scripts
authorkvn
Sat, 06 May 2017 09:36:01 -0700
changeset 46441 514c0eddaccc
parent 46440 61025eecb743
child 46442 b833f0dbbb5b
8179656: [AOT] Add AOT manual test scripts Reviewed-by: iveresov
hotspot/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/AOTCompilationTask.java
hotspot/test/compiler/aot/scripts/HelloWorld.java
hotspot/test/compiler/aot/scripts/InitGraal.java
hotspot/test/compiler/aot/scripts/README
hotspot/test/compiler/aot/scripts/build-bootmodules.sh
hotspot/test/compiler/aot/scripts/build-jdk.vm-modules.sh
hotspot/test/compiler/aot/scripts/empty.js
hotspot/test/compiler/aot/scripts/java.base-list.txt
hotspot/test/compiler/aot/scripts/jdk.internal.vm.compiler-list.txt
hotspot/test/compiler/aot/scripts/jdk.scripting.nashorn-list.txt
hotspot/test/compiler/aot/scripts/test-env.sh
hotspot/test/compiler/aot/scripts/test-graal.sh
hotspot/test/compiler/aot/scripts/test-helloworld.sh
hotspot/test/compiler/aot/scripts/test-jaotc.sh
hotspot/test/compiler/aot/scripts/test-javac.sh
hotspot/test/compiler/aot/scripts/test-nashorn.sh
--- a/hotspot/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/AOTCompilationTask.java	Fri May 05 19:28:54 2017 -0700
+++ b/hotspot/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/AOTCompilationTask.java	Sat May 06 09:36:01 2017 -0700
@@ -79,7 +79,7 @@
     public AOTCompilationTask(Main main, OptionValues graalOptions, AOTCompiledClass holder, ResolvedJavaMethod method, AOTBackend aotBackend) {
         this.main = main;
         this.graalOptions = graalOptions;
-        this.id = ids.getAndIncrement();
+        this.id = ids.incrementAndGet();
         this.holder = holder;
         this.method = method;
         this.aotBackend = aotBackend;
@@ -127,11 +127,7 @@
             final long allocatedBytesAfter = threadMXBean.getThreadAllocatedBytes(threadId);
             final long allocatedBytes = (allocatedBytesAfter - allocatedBytesBefore) / 1024;
 
-            if (printAfterCompilation) {
-                TTY.println(getMethodDescription() + String.format(" | %4dms %5dB %5dkB", stop - start, targetCodeSize, allocatedBytes));
-            } else if (printCompilation) {
-                TTY.println(String.format("%-6d JVMCI %-70s %-45s %-50s | %4dms %5dB %5dkB", getId(), "", "", "", stop - start, targetCodeSize, allocatedBytes));
-            }
+            TTY.println(getMethodDescription() + String.format(" | %4dms %5dB %5dkB", stop - start, targetCodeSize, allocatedBytes));
         }
 
         if (compResult == null) {
@@ -149,7 +145,7 @@
     }
 
     private String getMethodDescription() {
-        return String.format("%-6d JVMCI %-70s %-45s %-50s %s", getId(), method.getDeclaringClass().getName(), method.getName(), method.getSignature().toMethodDescriptor(),
+        return String.format("%-6d aot %s %s", getId(), MiscUtils.uniqueMethodName(method),
                         getEntryBCI() == JVMCICompiler.INVOCATION_ENTRY_BCI ? "" : "(OSR@" + getEntryBCI() + ") ");
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/HelloWorld.java	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,5 @@
+public class HelloWorld {
+    public static void main(String[] args) {
+        System.out.println("Hello, world!");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/InitGraal.java	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import jdk.vm.ci.hotspot.*;
+
+public class InitGraal {
+    public static void main(String[] args) throws Throwable {
+        HotSpotJVMCIRuntime.runtime().getCompiler();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/README	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,32 @@
+Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+or visit www.oracle.com if you need additional information or have any
+questions.
+
+--------------------------------------------
+This directory contains scripts to test AOT.
+
+JAVA_HOME should point to local JDK (scripts will install AOT libraries into it) which supports AOT.
+
+Use 'bash' shell to run scripts.
+
+Execute build-bootmodules.sh first before running test* scripts.
+
+Download dacapo-9.12-bach.jar and execute build-jdk.vm-modules.sh before running test-graal.sh
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/build-bootmodules.sh	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,106 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+pushd `dirname $0` > /dev/null
+DIR=`pwd`
+popd > /dev/null
+
+# set env variables
+. $DIR/test-env.sh
+
+MODULES="java.base"
+
+TEST=HelloWorld
+
+for m in $MODULES; do
+    rm -f $JAVA_HOME/lib/lib$m*.$SO_TYPE
+done
+
+$JAVA_HOME/bin/javac -d . $DIR/$TEST.java
+
+JAOTC_OPTS="-J-Xmx4g --compile-for-tiered --info"
+JAVA_OPTS="-Xmx4g -XX:+UseAOT -XX:+UnlockDiagnosticVMOptions -XX:+UseAOTStrictLoading"
+
+# Compile with: +UseCompressedOops +UseG1GC
+LIBRARIES=""
+for m in $MODULES; do
+    if [ -f $DIR/$m-list.txt ]; then
+	LIST="--compile-commands $DIR/$m-list.txt"
+    else
+	LIST=""
+    fi
+    $JAVA_HOME/bin/jaotc -J-XX:+UseCompressedOops -J-XX:+UseG1GC $JAOTC_OPTS $LIST --output lib$m-coop.$SO_TYPE --module $m || exit 1
+    LIBRARIES="$LIBRARIES$PWD/lib$m-coop.$SO_TYPE:"
+done
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:+UseCompressedOops -XX:+UseG1GC -XX:AOTLibrary=$LIBRARIES $TEST || exit 1
+
+# Compile with: +UseCompressedOops +UseParallelGC
+LIBRARIES=""
+for m in $MODULES; do
+    if [ -f $DIR/$m-list.txt ]; then
+	LIST="--compile-commands $DIR/$m-list.txt"
+    else
+	LIST=""
+    fi
+    $JAVA_HOME/bin/jaotc -J-XX:+UseCompressedOops -J-XX:+UseParallelGC $JAOTC_OPTS $LIST --output lib$m-coop-nong1.$SO_TYPE --module $m || exit 1
+    LIBRARIES="$LIBRARIES$PWD/lib$m-coop-nong1.$SO_TYPE:"
+done
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:+UseCompressedOops -XX:+UseParallelGC -XX:AOTLibrary=$LIBRARIES $TEST || exit 1
+
+# Compile with: -UseCompressedOops +UseG1GC
+LIBRARIES=""
+for m in $MODULES; do
+    if [ -f $DIR/$m-list.txt ]; then
+	LIST="--compile-commands $DIR/$m-list.txt"
+    else
+	LIST=""
+    fi
+    $JAVA_HOME/bin/jaotc -J-XX:-UseCompressedOops -J-XX:+UseG1GC $JAOTC_OPTS $LIST --output lib$m.$SO_TYPE --module $m || exit 1
+    LIBRARIES="$LIBRARIES$PWD/lib$m.$SO_TYPE:"
+done
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseCompressedOops -XX:+UseG1GC -XX:AOTLibrary=$LIBRARIES $TEST || exit 1
+
+# Compile with: -UseCompressedOops +UseParallelGC
+LIBRARIES=""
+for m in $MODULES; do
+    if [ -f $DIR/$m-list.txt ]; then
+	LIST="--compile-commands $DIR/$m-list.txt"
+    else
+	LIST=""
+    fi
+    $JAVA_HOME/bin/jaotc -J-XX:-UseCompressedOops -J-XX:+UseParallelGC $JAOTC_OPTS $LIST --output lib$m-nong1.$SO_TYPE --module $m || exit 1
+    LIBRARIES="$LIBRARIES$PWD/lib$m-nong1.$SO_TYPE:"
+done
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseCompressedOops -XX:+UseParallelGC -XX:AOTLibrary=$LIBRARIES $TEST || exit 1
+
+echo "Installing shared libraries in: $JAVA_HOME/lib/"
+for m in $MODULES; do
+    mv -f lib$m*.$SO_TYPE $JAVA_HOME/lib/
+done
+
+# Test installed libraries.
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseCompressedOops -XX:+UseG1GC       -XX:+PrintAOT $TEST | grep "aot library" || exit 1
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseCompressedOops -XX:+UseParallelGC -XX:+PrintAOT $TEST | grep "aot library" || exit 1
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:+UseCompressedOops -XX:+UseG1GC       -XX:+PrintAOT $TEST | grep "aot library" || exit 1
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:+UseCompressedOops -XX:+UseParallelGC -XX:+PrintAOT $TEST | grep "aot library" || exit 1
+
+rm -f $TEST.class
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/build-jdk.vm-modules.sh	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,110 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+pushd `dirname $0` > /dev/null
+DIR=`pwd`
+popd > /dev/null
+
+# set env variables
+. $DIR/test-env.sh
+
+MODULES="jdk.internal.vm.ci jdk.internal.vm.compiler"
+
+TEST=InitGraal
+
+for m in $MODULES; do
+    rm -f $JAVA_HOME/lib/lib$m*.$SO_TYPE
+done
+
+$JAVA_HOME/bin/javac --add-modules jdk.internal.vm.ci --add-exports jdk.internal.vm.ci/jdk.vm.ci.hotspot=ALL-UNNAMED $DIR/$TEST.java
+
+# AOT compile non-tiered code version.
+JAOTC_OPTS="-J-Xmx4g --info"
+JAVA_OPTS="-Xmx4g -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseAOT -XX:+UnlockDiagnosticVMOptions -XX:+UseAOTStrictLoading --add-modules jdk.internal.vm.ci --add-exports jdk.internal.vm.ci/jdk.vm.ci.hotspot=ALL-UNNAMED"
+
+# Compile with: +UseCompressedOops +UseG1GC
+RT_OPTS="-J-XX:+UseCompressedOops -J-XX:+UseG1GC"
+LIBRARIES=""
+for m in $MODULES; do
+    if [ -f $DIR/$m-list.txt ]; then
+	LIST="--compile-commands $DIR/$m-list.txt"
+    else
+	LIST=""
+    fi
+    $JAVA_HOME/bin/jaotc $RT_OPTS $JAOTC_OPTS $LIST --output lib$m-coop.$SO_TYPE --module $m -J-XX:AOTLibrary=$LIBRARIES || exit 1
+    LIBRARIES="$LIBRARIES$PWD/lib$m-coop.$SO_TYPE:"
+done
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:+UseCompressedOops -XX:+UseG1GC -XX:+PrintAOT -XX:AOTLibrary=$LIBRARIES $TEST | grep "aot library" || exit 1
+
+# Compile with: +UseCompressedOops +UseParallelGC
+RT_OPTS="-J-XX:+UseCompressedOops -J-XX:+UseParallelGC"
+LIBRARIES=""
+for m in $MODULES; do
+    if [ -f $DIR/$m-list.txt ]; then
+	LIST="--compile-commands $DIR/$m-list.txt"
+    else
+	LIST=""
+    fi
+    $JAVA_HOME/bin/jaotc $RT_OPTS $JAOTC_OPTS $LIST --output lib$m-coop-nong1.$SO_TYPE --module $m -J-XX:AOTLibrary=$LIBRARIES || exit 1
+    LIBRARIES="$LIBRARIES$PWD/lib$m-coop-nong1.$SO_TYPE:"
+done
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:+UseCompressedOops -XX:+UseParallelGC -XX:+PrintAOT -XX:AOTLibrary=$LIBRARIES $TEST | grep "aot library" || exit 1
+
+# Compile with: -UseCompressedOops +UseG1GC
+RT_OPTS="-J-XX:-UseCompressedOops -J-XX:+UseG1GC"
+LIBRARIES=""
+for m in $MODULES; do
+    if [ -f $DIR/$m-list.txt ]; then
+	LIST="--compile-commands $DIR/$m-list.txt"
+    else
+	LIST=""
+    fi
+    $JAVA_HOME/bin/jaotc $RT_OPTS $JAOTC_OPTS $LIST --output lib$m.$SO_TYPE --module $m -J-XX:AOTLibrary=$LIBRARIES || exit 1
+    LIBRARIES="$LIBRARIES$PWD/lib$m.$SO_TYPE:"
+done
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseCompressedOops -XX:+UseG1GC -XX:+PrintAOT -XX:AOTLibrary=$LIBRARIES $TEST | grep "aot library" || exit 1
+
+# Compile with: -UseCompressedOops +UseParallelGC
+RT_OPTS="-J-XX:-UseCompressedOops -J-XX:+UseParallelGC"
+LIBRARIES=""
+for m in $MODULES; do
+    if [ -f $DIR/$m-list.txt ]; then
+	LIST="--compile-commands $DIR/$m-list.txt"
+    else
+	LIST=""
+    fi
+    $JAVA_HOME/bin/jaotc $RT_OPTS $JAOTC_OPTS $LIST --output lib$m-nong1.$SO_TYPE --module $m -J-XX:AOTLibrary=$LIBRARIES || exit 1
+    LIBRARIES="$LIBRARIES$PWD/lib$m-nong1.$SO_TYPE:"
+done
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseCompressedOops -XX:+UseParallelGC -XX:+PrintAOT -XX:AOTLibrary=$LIBRARIES $TEST | grep "aot library" || exit 1
+
+echo "Installing shared libraries in: $JAVA_HOME/lib/"
+for m in $MODULES; do
+    mv -f lib$m*.$SO_TYPE $JAVA_HOME/lib/
+done
+
+# Test installed libraries.
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseCompressedOops -XX:+UseG1GC       -XX:+PrintAOT $TEST | grep "aot library" || exit 1
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseCompressedOops -XX:+UseParallelGC -XX:+PrintAOT $TEST | grep "aot library" || exit 1
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:+UseCompressedOops -XX:+UseG1GC       -XX:+PrintAOT $TEST | grep "aot library" || exit 1
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:+UseCompressedOops -XX:+UseParallelGC -XX:+PrintAOT $TEST | grep "aot library" || exit 1
+
+rm -f $TEST.class
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/empty.js	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,1 @@
+i = 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/java.base-list.txt	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,36 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+# jaotc: java.lang.StackOverflowError
+exclude sun.util.resources.LocaleNames.getContents()[[Ljava/lang/Object;
+exclude sun.util.resources.TimeZoneNames.getContents()[[Ljava/lang/Object;
+exclude sun.util.resources.cldr.LocaleNames.getContents()[[Ljava/lang/Object;
+exclude sun.util.resources..*.LocaleNames_.*.getContents\(\)\[\[Ljava/lang/Object;
+exclude sun.util.resources..*.LocaleNames_.*_.*.getContents\(\)\[\[Ljava/lang/Object;
+exclude sun.util.resources..*.TimeZoneNames_.*.getContents\(\)\[\[Ljava/lang/Object;
+exclude sun.util.resources..*.TimeZoneNames_.*_.*.getContents\(\)\[\[Ljava/lang/Object;
+# java.lang.Error: Trampoline must not be defined by the bootstrap classloader
+exclude sun.reflect.misc.Trampoline.<clinit>()V
+exclude sun.reflect.misc.Trampoline.invoke(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
+# assert(referenceMask != -1) failed: must not be a derived reference type
+exclude com.sun.crypto.provider.AESWrapCipher.engineUnwrap([BLjava/lang/String;I)Ljava/security/Key;
+exclude sun.security.ssl.*
+exclude sun.net.RegisteredDomain.<clinit>()V
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/jdk.internal.vm.compiler-list.txt	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,38 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+exclude org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.*
+exclude org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.*
+exclude org.graalvm.compiler.hotspot.replacements.CipherBlockChainingSubstitutions.crypt(Ljava/lang/Object;[BII[BILjava/lang/Object;ZZ)V
+exclude org.graalvm.compiler.hotspot.stubs.StubUtil.printf(.*).*
+exclude org.graalvm.compiler.hotspot.stubs.StubUtil.decipher(J)V
+exclude org.graalvm.compiler.hotspot.stubs.StubUtil.fatal(.*).*
+#
+exclude org.graalvm.compiler.replacements.nodes.ArrayEqualsNode.equals(.*).*
+exclude org.graalvm.compiler.replacements.Log.print.*
+exclude org.graalvm.compiler.replacements.ReplacementsUtil.*
+exclude org.graalvm.compiler.replacements.SnippetCounter.*
+exclude org.graalvm.compiler.replacements.SnippetCounterNode.*
+#
+exclude org.graalvm.compiler.nodes.java.NewArrayNode.newUninitializedArray(Ljava/lang/Class;I)Ljava/lang/Object;
+exclude org.graalvm.compiler.nodes.java.DynamicNewArrayNode.newUninitializedArray(Ljava/lang/Class;ILjdk/vm/ci/meta/JavaKind;)Ljava/lang/Object;
+exclude org.graalvm.compiler.nodes.java.DynamicNewArrayNode.newArray(Ljava/lang/Class;ILjdk/vm/ci/meta/JavaKind;)Ljava/lang/Object;
+exclude org.graalvm.compiler.nodes.PiNode.piCastNonNull(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/jdk.scripting.nashorn-list.txt	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,23 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+exclude jdk.nashorn.internal.objects.*
+exclude jdk.nashorn.internal.ir.debug.*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/test-env.sh	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,42 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+  Linux | SunOS )
+    SO_TYPE=so
+    ;;
+  Darwin )
+    SO_TYPE=dylib
+    ;;
+  Windows_* )
+    SO_TYPE=dll
+    ;;
+  CYGWIN_* )
+    SO_TYPE=dll
+    ;;
+  * )
+    echo "Unrecognized system!"
+    exit 1;
+    ;;
+esac
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/test-graal.sh	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,62 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+JAR="dacapo-9.12-bach.jar"
+
+if [ ! -f $JAR ]; then
+    echo "$JAR not found."
+    exit 1
+fi
+
+pushd `dirname $0` > /dev/null
+DIR=`pwd`
+popd > /dev/null
+
+APP="-jar $JAR -s small -n 5"
+
+JAVA_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:-BootstrapJVMCI -XX:-TieredCompilation -Xmx4g -XX:+UseCompressedOops -XX:+UseG1GC"
+
+MODULE_OPTS="--add-modules jdk.internal.vm.ci --add-exports jdk.internal.vm.ci/jdk.vm.ci.hotspot=ALL-UNNAMED"
+
+$JAVA_HOME/bin/java $JAVA_OPTS -version || exit 1
+
+$JAVA_HOME/bin/javac $MODULE_OPTS InitGraal.java || exit 1
+
+PATTERN="(aot library|DONE:.*HotSpotVMConfig|DONE:.*HotSpotJVMCIRuntime|DONE:.*HotSpotGraalRuntime)"
+echo "----------"
+$JAVA_HOME/bin/java $JAVA_OPTS $MODULE_OPTS -XX:+TieredCompilation -XX:-UseAOT -XX:+PrintAOT -Djvmci.InitTimer=true InitGraal | grep -E "$PATTERN" || exit 1
+echo "----------"
+$JAVA_HOME/bin/java $JAVA_OPTS $MODULE_OPTS -XX:+TieredCompilation             -XX:+PrintAOT -Djvmci.InitTimer=true InitGraal | grep -E "$PATTERN" || exit 1
+echo "----------"
+$JAVA_HOME/bin/java $JAVA_OPTS $MODULE_OPTS                                    -XX:+PrintAOT -Djvmci.InitTimer=true InitGraal | grep -E "$PATTERN" || exit 1
+echo "----------"
+
+rm -f InitGraal.class
+
+# eclipse started to fail again with JDK 9.
+#BENCHMARKS="avrora batik eclipse fop jython h2 luindex lusearch pmd sunflow tradebeans tradesoap xalan"
+BENCHMARKS="avrora batik fop jython h2 luindex lusearch pmd sunflow xalan"
+
+for i in $BENCHMARKS; do
+    $JAVA_HOME/bin/java $JAVA_OPTS $APP $i || exit 1
+    rm -rf ./scratch
+done
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/test-helloworld.sh	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,97 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+pushd `dirname $0` > /dev/null
+DIR=`pwd`
+popd > /dev/null
+
+# set env variables
+. $DIR/test-env.sh
+
+rm -f libHelloWorld*.$SO_TYPE HelloWorld.class
+
+$JAVA_HOME/bin/javac -d . $DIR/HelloWorld.java
+
+# Run once with non-compressed oops.
+OPTS="-J-Xmx4g -J-XX:-UseCompressedOops --info --verbose"
+$JAVA_HOME/bin/jaotc $OPTS --output libHelloWorld.$SO_TYPE HelloWorld.class || exit 1
+
+JAVA_OPTS="-Xmx4g -XX:-UseCompressedOops -XX:+UnlockDiagnosticVMOptions -XX:+UseAOTStrictLoading -XX:AOTLibrary=./libHelloWorld.$SO_TYPE"
+
+$JAVA_HOME/bin/java $JAVA_OPTS -XX:+PrintAOT -version | grep "aot library" || exit 1
+$JAVA_HOME/bin/java $JAVA_OPTS HelloWorld || exit 1
+
+TIMEFORMAT="%3R"
+N=5
+
+LIBRARY=libHelloWorld-coop.$SO_TYPE
+
+for gc in UseG1GC UseParallelGC; do
+    # Now with compressed oops.
+    OPTS="-J-XX:+UseCompressedOops -J-XX:+$gc --info --verbose"
+    $JAVA_HOME/bin/jaotc $OPTS --output $LIBRARY HelloWorld.class
+
+    # Dump CDS archive.
+    $JAVA_HOME/bin/java -Xshare:dump -XX:-UseAOT -XX:+$gc || exit 1
+
+    JAVA_OPTS="-Xmx256m"
+
+    echo "Tiered C1 $gc:"
+    for i in `seq 1 $N`; do
+        OUT=`time $JAVA_HOME/bin/java -XX:+$gc -XX:-UseCompressedOops -XX:-UseAOT -XX:TieredStopAtLevel=1 $JAVA_OPTS HelloWorld`
+        if [ "$OUT" != "Hello, world!" ]; then
+            echo $OUT
+            exit 1
+        fi
+    done
+
+    echo "Tiered C1/C2 $gc:"
+    for i in `seq 1 $N`; do
+        OUT=`time $JAVA_HOME/bin/java -XX:+$gc -XX:-UseCompressedOops -XX:-UseAOT $JAVA_OPTS HelloWorld`
+        if [ "$OUT" != "Hello, world!" ]; then
+            echo $OUT
+            exit 1
+        fi
+    done
+
+    JAVA_OPTS="-Xmx256m -XX:+UseCompressedOops -XX:+UnlockDiagnosticVMOptions -XX:+UseAOTStrictLoading -XX:AOTLibrary=./$LIBRARY"
+
+
+    echo "AOT $gc:"
+    for i in `seq 1 $N`; do
+        OUT=`time $JAVA_HOME/bin/java -XX:+$gc $JAVA_OPTS HelloWorld`
+        if [ "$OUT" != "Hello, world!" ]; then
+            echo $OUT
+            exit 1
+        fi
+    done
+
+    echo "AOT -Xshare:on $gc:"
+    for i in `seq 1 $N`; do
+        OUT=`time $JAVA_HOME/bin/java -Xshare:on -XX:+$gc $JAVA_OPTS HelloWorld`
+        if [ "$OUT" != "Hello, world!" ]; then
+            echo $OUT
+            exit 1
+        fi
+    done
+done
+
+rm -f libHelloWorld*.$SO_TYPE HelloWorld.class
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/test-jaotc.sh	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,43 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+pushd `dirname $0` > /dev/null
+DIR=`pwd`
+popd > /dev/null
+
+# set env variables
+. $DIR/test-env.sh
+
+JAOTC_OPTS="-J-Xmx4g -J-XX:-UseCompressedOops"
+
+rm -f libjdk.aot.$SO_TYPE
+
+$JAVA_HOME/bin/jaotc $JAOTC_OPTS --info --module jdk.aot --output libjdk.aot.$SO_TYPE || exit 1
+
+rm -f libjava.base-aot.$SO_TYPE
+
+$JAVA_HOME/bin/jaotc $JAOTC_OPTS -J-XX:AOTLibrary=./libjdk.aot.$SO_TYPE --info --compile-commands $DIR/java.base-list.txt --output libjava.base-aot.$SO_TYPE --module java.base || exit 1
+
+$JAVA_HOME/bin/javac -d . $DIR/HelloWorld.java
+
+$JAVA_HOME/bin/java -XX:-UseCompressedOops -XX:AOTLibrary=./libjava.base-aot.$SO_TYPE HelloWorld
+
+rm -f HelloWorld.class libjdk.aot.$SO_TYPE libjava.base-aot.$SO_TYPE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/test-javac.sh	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,157 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+pushd `dirname $0` > /dev/null
+DIR=`pwd`
+popd > /dev/null
+
+AOT_OPTS="-XX:+UseAOT"
+
+$JAVA_HOME/bin/java $AOT_OPTS -XX:+PrintAOT -version | grep "aot library" || exit 1
+
+# Dump CDS archive.
+$JAVA_HOME/bin/java $AOT_OPTS -Xshare:dump || exit 1
+
+FILE="HelloWorld"
+
+APP="com.sun.tools.javac.Main"
+
+JAVA_OPTS="-XX:-UseCompressedOops"
+
+rm -f $FILE.class
+
+$JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS $APP -verbose $FILE.java || exit 1
+$JAVA_HOME/bin/java $AOT_OPTS $FILE || exit 1
+
+JAVA_OPTS="-XX:+UseCompressedOops"
+
+rm -f $FILE.class
+
+$JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS $APP -verbose $FILE.java || exit 1
+$JAVA_HOME/bin/java $AOT_OPTS $FILE || exit 1
+
+rm -f $FILE.class
+
+TIMEFORMAT="%3R"
+N=5
+
+#echo "-Xint:"
+#for i in `seq 1 10`; do
+#    time $JAVA_HOME/bin/java -Xint $JAVA_OPTS $APP $FILE.java
+#    if [ $? -ne 0 ]; then
+#        exit 1
+#    fi
+#    rm -f $FILE.class
+#done
+
+echo "Tiered C1:"
+for i in `seq 1 $N`; do
+    time $JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseAOT -XX:TieredStopAtLevel=1 $APP $FILE.java
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+    rm -f $FILE.class
+done
+
+echo "Tiered C1/C2:"
+for i in `seq 1 $N`; do
+    time $JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseAOT $APP $FILE.java
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+    rm -f $FILE.class
+done
+
+echo "Tiered C1/C2 -Xshare:on:"
+for i in `seq 1 $N`; do
+    time $JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseAOT -Xshare:on $APP $FILE.java
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+    rm -f $FILE.class
+done
+
+echo "Tiered AOT:"
+for i in `seq 1 $N`; do
+    time $JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS $APP $FILE.java
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+    rm -f $FILE.class
+done
+
+echo "Tiered AOT -Xshare:on:"
+for i in `seq 1 $N`; do
+    time $JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS -Xshare:on $APP $FILE.java
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+    rm -f $FILE.class
+done
+
+NAME="jvmci"
+DIR="$DIR/../../../../src/jdk.internal.vm.ci"
+FILES=`find $DIR -type f -name '*.java'`
+COUNT=`find $DIR -type f -name '*.java' | wc -l`
+
+rm -rf tmp
+
+echo "Tiered C1 (compiling $NAME: $COUNT classes):"
+for i in `seq 1 $N`; do
+    mkdir tmp
+    time $JAVA_HOME/bin/javac -J-XX:-UseAOT -J-XX:TieredStopAtLevel=1 -XDignore.symbol.file -d tmp $FILES
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+    rm -rf tmp
+done
+
+echo "Tiered C1/C2 (compiling $NAME: $COUNT classes):"
+for i in `seq 1 $N`; do
+    mkdir tmp
+    time $JAVA_HOME/bin/javac -J-XX:-UseAOT -XDignore.symbol.file -cp /java/devtools/share/junit/latest/junit.jar -d tmp $FILES
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+    rm -rf tmp
+done
+
+echo "Tiered AOT (compiling $NAME: $COUNT classes):"
+for i in `seq 1 $N`; do
+    mkdir tmp
+    time $JAVA_HOME/bin/javac -J-XX:+UseAOT -XDignore.symbol.file -cp /java/devtools/share/junit/latest/junit.jar -d tmp $FILES
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+    rm -rf tmp
+done
+
+echo "Tiered AOT -Xshare:on (compiling $NAME: $COUNT classes):"
+for i in `seq 1 $N`; do
+    mkdir tmp
+    time $JAVA_HOME/bin/javac -J-Xshare:on -J-XX:+UseAOT -XDignore.symbol.file -cp /java/devtools/share/junit/latest/junit.jar -d tmp $FILES
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+    rm -rf tmp
+done
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/aot/scripts/test-nashorn.sh	Sat May 06 09:36:01 2017 -0700
@@ -0,0 +1,74 @@
+# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+pushd `dirname $0` > /dev/null
+DIR=`pwd`
+popd > /dev/null
+
+# set env variables
+. $DIR/test-env.sh
+
+$JAVA_HOME/bin/java -XX:+UnlockDiagnosticVMOptions -XX:+UseAOTStrictLoading -XX:+PrintAOT -version | grep "aot library" || exit 1
+
+# Dump CDS archive.
+$JAVA_HOME/bin/java -Xshare:dump || exit 1
+
+FILE="empty.js"
+
+TIMEFORMAT="%3R"
+N=5
+
+rm -f libjdk.nashorn.$SO_TYPE
+$JAVA_HOME/bin/jaotc --info --compile-commands jdk.scripting.nashorn-list.txt --module jdk.scripting.nashorn --output libjdk.nashorn.$SO_TYPE || exit 1
+
+echo "Tiered C1:"
+for i in `seq 1 $N`; do
+    time $JAVA_HOME/bin/jjs $JAVA_OPTS -J-XX:-UseAOT -J-XX:TieredStopAtLevel=1 $FILE
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+done
+
+echo "Tiered C1/C2:"
+for i in `seq 1 $N`; do
+    time $JAVA_HOME/bin/jjs $JAVA_OPTS -J-XX:-UseAOT $FILE
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+done
+
+echo "Tiered AOT:"
+for i in `seq 1 $N`; do
+    time $JAVA_HOME/bin/jjs $JAVA_OPTS -J-XX:+UnlockDiagnosticVMOptions -J-XX:+UseAOTStrictLoading -J-XX:AOTLibrary=./libjdk.nashorn.$SO_TYPE $FILE
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+done
+
+echo "Tiered AOT -Xshare:on:"
+for i in `seq 1 $N`; do
+    time $JAVA_HOME/bin/jjs $JAVA_OPTS -J-Xshare:on -J-XX:+UnlockDiagnosticVMOptions -J-XX:+UseAOTStrictLoading -J-XX:AOTLibrary=./libjdk.nashorn.$SO_TYPE $FILE
+    if [ $? -ne 0 ]; then
+        exit 1
+    fi
+done
+
+rm -f libjdk.nashorn.$SO_TYPE