1# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
2# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3#
4# This code is free software; you can redistribute it and/or modify it
5# under the terms of the GNU General Public License version 2 only, as
6# published by the Free Software Foundation.
7#
8# This code is distributed in the hope that it will be useful, but WITHOUT
9# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
11# version 2 for more details (a copy is included in the LICENSE file that
12# accompanied this code).
13#
14# You should have received a copy of the GNU General Public License version
15# 2 along with this work; if not, write to the Free Software Foundation,
16# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17#
18# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19# or visit www.oracle.com if you need additional information or have any
20# questions.
21
22pushd `dirname $0` > /dev/null
23DIR=`pwd`
24popd > /dev/null
25
26AOT_OPTS="-XX:+UseAOT"
27
28$JAVA_HOME/bin/java $AOT_OPTS -XX:+PrintAOT -version | grep "aot library" || exit 1
29
30# Dump CDS archive.
31$JAVA_HOME/bin/java $AOT_OPTS -Xshare:dump || exit 1
32
33FILE="HelloWorld"
34
35APP="com.sun.tools.javac.Main"
36
37JAVA_OPTS="-XX:-UseCompressedOops"
38
39rm -f $FILE.class
40
41$JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS $APP -verbose $FILE.java || exit 1
42$JAVA_HOME/bin/java $AOT_OPTS $FILE || exit 1
43
44JAVA_OPTS="-XX:+UseCompressedOops"
45
46rm -f $FILE.class
47
48$JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS $APP -verbose $FILE.java || exit 1
49$JAVA_HOME/bin/java $AOT_OPTS $FILE || exit 1
50
51rm -f $FILE.class
52
53TIMEFORMAT="%3R"
54N=5
55
56#echo "-Xint:"
57#for i in `seq 1 10`; do
58#    time $JAVA_HOME/bin/java -Xint $JAVA_OPTS $APP $FILE.java
59#    if [ $? -ne 0 ]; then
60#        exit 1
61#    fi
62#    rm -f $FILE.class
63#done
64
65echo "Tiered C1:"
66for i in `seq 1 $N`; do
67    time $JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseAOT -XX:TieredStopAtLevel=1 $APP $FILE.java
68    if [ $? -ne 0 ]; then
69        exit 1
70    fi
71    rm -f $FILE.class
72done
73
74echo "Tiered C1/C2:"
75for i in `seq 1 $N`; do
76    time $JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseAOT $APP $FILE.java
77    if [ $? -ne 0 ]; then
78        exit 1
79    fi
80    rm -f $FILE.class
81done
82
83echo "Tiered C1/C2 -Xshare:on:"
84for i in `seq 1 $N`; do
85    time $JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseAOT -Xshare:on $APP $FILE.java
86    if [ $? -ne 0 ]; then
87        exit 1
88    fi
89    rm -f $FILE.class
90done
91
92echo "Tiered AOT:"
93for i in `seq 1 $N`; do
94    time $JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS $APP $FILE.java
95    if [ $? -ne 0 ]; then
96        exit 1
97    fi
98    rm -f $FILE.class
99done
100
101echo "Tiered AOT -Xshare:on:"
102for i in `seq 1 $N`; do
103    time $JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS -Xshare:on $APP $FILE.java
104    if [ $? -ne 0 ]; then
105        exit 1
106    fi
107    rm -f $FILE.class
108done
109
110NAME="jvmci"
111DIR="$DIR/../../../../src/jdk.internal.vm.ci"
112FILES=`find $DIR -type f -name '*.java'`
113COUNT=`find $DIR -type f -name '*.java' | wc -l`
114
115rm -rf tmp
116
117echo "Tiered C1 (compiling $NAME: $COUNT classes):"
118for i in `seq 1 $N`; do
119    mkdir tmp
120    time $JAVA_HOME/bin/javac -J-XX:-UseAOT -J-XX:TieredStopAtLevel=1 -XDignore.symbol.file -d tmp $FILES
121    if [ $? -ne 0 ]; then
122        exit 1
123    fi
124    rm -rf tmp
125done
126
127echo "Tiered C1/C2 (compiling $NAME: $COUNT classes):"
128for i in `seq 1 $N`; do
129    mkdir tmp
130    time $JAVA_HOME/bin/javac -J-XX:-UseAOT -XDignore.symbol.file -cp /java/devtools/share/junit/latest/junit.jar -d tmp $FILES
131    if [ $? -ne 0 ]; then
132        exit 1
133    fi
134    rm -rf tmp
135done
136
137echo "Tiered AOT (compiling $NAME: $COUNT classes):"
138for i in `seq 1 $N`; do
139    mkdir tmp
140    time $JAVA_HOME/bin/javac -J-XX:+UseAOT -XDignore.symbol.file -cp /java/devtools/share/junit/latest/junit.jar -d tmp $FILES
141    if [ $? -ne 0 ]; then
142        exit 1
143    fi
144    rm -rf tmp
145done
146
147echo "Tiered AOT -Xshare:on (compiling $NAME: $COUNT classes):"
148for i in `seq 1 $N`; do
149    mkdir tmp
150    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
151    if [ $? -ne 0 ]; then
152        exit 1
153    fi
154    rm -rf tmp
155done
156
157
158