blob: 68e8187ad78ba062a6b028c6a2ff88a8605f4f16 [file] [log] [blame]
Copyright (c) 2008, 2018, 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.
* common/ArrayBounds
Checks whether the compiler makes incorrect array bounds removal optimizations.
* common/ArrayTests
Checks whether array stores and reads are correct for integral types and floating points.
* common/bounds
Makes sure that array bounds checking is enabled with the JIT on
* common/CEETest
Checks whether comparision operations work properly.
* common/collapse
Checks constatnt propagation facilities of the JIT compiler.
* common/CondExpr
Checks that code for conditional expressions is generated properly.
* common/deoptimization/test01
* common/deoptimization/test02
* common/deoptimization/test03
* common/deoptimization/test04
* common/deoptimization/test05
* common/deoptimization/test06
* common/deoptimization/test07
* common/deoptimization/test08
Check compiler deoptimization facilities.
* common/DivTest
Checks some special cases of divide operation.
* common/exception
This JIT buster test checks to see if a JIT doing register allocation
on a machine with a callees saves ABI for non-volatile registers can
get the exception handling correct. Intel and PowerPC are both such
machines.
* common/exceptiontest
Does exactly the same as common/exception
* common/ExcOpt
Tests exception handler inside optimizable loop and around it.
* common/FPCompare/TestFPBinop
Tests floating point binary operations.
* common/FPCompare/TestFPCompare
Test of floating point comparison.
* common/gen_math/Filtering
* common/gen_math/Loops_1
* common/gen_math/Loops_2
* common/gen_math/Loops_3
* common/gen_math/Loops_4
* common/gen_math/Loops_5
* common/gen_math/Loops_6
* common/gen_math/Loops_7
* common/gen_math/Matrix_3d
* common/gen_math/Summ
These tests check math preciction stuff.
* common/gen_math/ShortCircuitTest
A complete set of tests for the binary Java operators {&&, ||, &, |} to
ensure that (C-style) short circuit evaluation is used where required, and
also is not used where prohibited. Checks has been constructed carefully to
be independent of the operators under scrutiny, so that passing these tests
constitutes validation of those operators.
* common/graph
The test checks the dynamic class creation and method invokation reflection features. A number of threads is created. They call
methods dynamically and recursively. Also, exceptions, thrown from the dynamically called methods are checked.
* common/inittest
Checks correctness of class initialization order.
* common/inittest2
Checks that JIT doesn't perform an initialization of class which is never used.
* common/inline001
This test is valid in JDK 1.1.4 and in prior JDKs. It
ceased to work in JDK 1.2e. The test relied on the JIT
to inline some final methods and to never inline non-final
methods.
* common/inline002
Look for inlined final methods in java.Math. Do this by comparing
execution times against estimates of call overheads for various
method signatures.
The current (08/04/97) list of inlined methods is short:
abs(float)
abs(double)
sqrt(double) [i386 only]
If new methods are inlined or dropped from the list of inlined
codes, record this fact by changing the value of an element of the
array expectInline. This is done in the method result().
This test will fail if the JIT is disabled. There are two modes
of operation. The first is to merely record a pass/fail for each
method tested. This output should be machine independent and
suitable for a golden file.
java -Djava.compiler=sunwjit inline002
The other mode is a report generation mode. It reports the
number of iterations, call overhead in nanoseconds, and a judgement
as to whether a method was inlined or not.
java -Djava.compiler=sunwjit inline002 -report
* common/inline003
* common/inline004
Check inlining of final methods.
* common/inline005
Checks correctness of evaluation order in inlined math functions (?).
* common/inline006
* common/inline007
Checks access to final class fields.
* common/JITSuite
Does exactly the same as common/inittest2
* common/jtest
Does some client-server communications via sockets. Not actually a JIT test!
* common/Linpack
Math presiction test.
* common/loops/arg01
* common/loops/arg03
Fill arrays in a loops and then makes a number of checks (?)
* common/loops/arg04
Checks correctness of interprocedural data flow analysis, tests for recognition of
loop independent dependences between statements in mutually exclusive regions, checks
global data flow analysis.
* common/loops/arg05
Checks loop vectorization stuff.
* common/loops/arg06
Checks statement reordering, loop distribution, partial loop vectorization, recurrence
in the middle of the loop.
* common/loops/arg07
Checks loop interchange, node splitting.
* common/loops/arg08
Checks scalar and array expansion.
* common/loops/arg09
Checks scalar and array expansion, control flow (loop with independent conditional).
* common/loops/arg10
Some control flow-related checks.
* common/loops/dec01
* common/loops/dec02
* common/loops/dec03
* common/loops/dec04
* common/loops/dec05
* common/loops/dec06
* common/loops/dec07
* common/loops/dec08
* common/loops/dec09
* common/loops/dec10
* common/loops/dec11
Some aritmetic operations within loops and a number of comparisions (?).
* common/loops/fuse1
* common/loops/fuse10
* common/loops/fuse101
* common/loops/fuse102
* common/loops/fuse103
* common/loops/fuse105
* common/loops/fuse106
* common/loops/fuse108
* common/loops/fuse11
* common/loops/fuse111
* common/loops/fuse113
* common/loops/fuse116
* common/loops/fuse117
* common/loops/fuse12
* common/loops/fuse13
* common/loops/fuse14
* common/loops/fuse16
* common/loops/fuse17
* common/loops/fuse18
* common/loops/fuse2
* common/loops/fuse3
* common/loops/fuse4
* common/loops/fuse5
* common/loops/fuse6
* common/loops/fuse8
Check correctness of loop fusion.
* common/loops/fuse107
* common/loops/fuse109
* common/loops/fuse15
* common/loops/fuse19
* common/loops/fuse7
* common/loops/fuse9
Construct a number of loops and make some calculations. These tests seems to be
incomplete (incorrectly translated from Fortran).
* common/loops/private1
Single dimensional private array, with no carried dependence in the inner
loop - simple subscripts.
* common/loops/private2
Single dimensional private array, with no carried dependence in the inner
loop - non-simple subscripts (test incomplete).
* common/loops/private3
Single dimensional private array, with no carried dependence
in the inner loop (test incomplete).
* common/loops/private4
Loop with condionals, both arms of the conditional cover the entire array
which is private.
* common/loops/private5
Single dimensional private array, 2 inner loops; all uses of array in the 2nd loop are
covered by defs in the 1st one.
* common/loops/private6
Single dimensional private array; all uses of array in the inner loop are
covered by defs in the outer one.
* common/loops/private7
Single dimensional private array, 3 inner loops; all uses of array in the 3rd loop are
covered by defs in the 1st and 2nd one.
* common/loops/private8
Single dimensional private array, 3 inner loops; the defs of array in the 2nd loop cover
all the defs and uses within loops 2 and 3.
* common/loops/private9
Single dimensional private array, the two loops effectively cover the array.
* common/loops/private10
Single dimensional private array, the two asignments to the array in the inner loop
effectively cover the entire array.
* common/loops/private104
Loop with condionals. Both arms of the conditional cover the entire array.
* common/loops/private105
Single dimensional private array, 2 inner loops; all uses of array in the 2nd loop are
covered by defs in the 1st one.
* common/loops/private107
Single dimensional private array, 3 inner loops; all uses of array in the 3rd loop are
covered by defs in the 1st and 2nd one.
* common/loops/private109
Single dimensional private array, the two loops effectively cover the array.
* common/loops/private11
The two loops each cover disjoint triangular regions of the array. Together they
cover the entire array.
* common/loops/private110
Single dimensional private array, the two asignments to the array in the inner loop
effectively cover the entire array.
* common/loops/private111
The two loops each cover disjoint triangular regions of the array. Together they
cover the entire array.
* common/loops/private112
* common/loops/private113
* common/loops/private12
* common/loops/private13
Private array sections. Even though only a portion of the array is covered by the
definitions, but the uses are covered entirely by the defs in the array.
* common/loops/private117
Single dimensional private array, 2 inner loops; all uses of array in the 2nd loop are
covered by defs in the 1st one.
* common/loops/private118
Two dimensional private array and some loop unrolling made by hand.
* common/loops/private119
Two dimensional private array.
* common/loops/private120
Loop peeling before and after the loop.
* common/loops/private122
Two dimensional private array.
* common/loops/private123
Single dimensional private array; even though not all elements of the array are modified
in the inner loop, and all uses of array are covered.
* common/loops/private124
Two dimensional private array. Loop with condionals; both arms of the conditional cover
the entire array, there are uses in the either arm the are entirely covered.
* common/loops/private125
Two dimensional private array. Loop with condionals; the uses of the array outside the
conditional are not guaranteed to be covered entirely.
* common/loops/private126
Two dimensional array. Here array is not private, as one element is not covered in the loop.
* common/loops/private128
Two and single dimensional arrays.
* common/loops/private130
2 two dimensional and 1 single dimension array.
* common/loops/private133
Single dimensional private array, 2 inner loops.
* common/loops/private14
This is an involved test. The first j loop covers 1..m elements of the
1..n array. Since overindexing is prohibited, the compiler should assume
that 1..m is a subset of 1..n. In the k loop first m uses of the array
a() are covered by defs in the j loop. The next m+1..n iterations of the
loop do not have any uncovered uses. Therefore the array a() ought to be
a private array.
* common/loops/private15
Similar to common/loops/private14, but uses no conditionals.
* common/loops/private17
Single dimensional array, assuming no overindexing.
* common/loops/private18
* common/loops/private19
* common/loops/private20
* common/loops/private22
Single dimensional private array, 3 inner loops.
* common/loops/private21
3 inner loops, the 1st and 2nd loop together cover the entire array, and all the uses
of the array in the 3rd loop are covered.
* common/loops/private23
Private array, even though not all elements of the array are modified in inner loop,
and all uses of the array are covered.
* common/loops/private24
Conditional inside the loop, 2 inner loops in both arms.
* common/loops/private25
Conditional inside the loop, inner loops in both arms and one inner loop after
the conditional.
* common/loops/private26
* common/loops/private27
* common/loops/private28
Single dimensional private array, 3 inner loops.
* common/loops/private29
Single dimensional private array, 2 inner loops.
* common/loops/private30
Conditional inside the loop, inner loops in both arms and one inner loop before
the conditional.
* common/loops/private31
Conditional inside the loop, inner loop in both arms.
* common/loops/private32
2 loops, inner loop inside the 2nd one.
* common/loops/private33
Single dimensional private array, 2 inner loops.
* common/misctests/classes
No test found!
* common/misctests/clss14702
Checks that NullPointerException is thrown.
* common/misctests/FileViewer
Not a JIT test!
* common/misctests/Foo
Does nothing.
* common/misctests/fpustack
Not a JIT test!
* common/misctests/Jdk116JitProblem
The test illustrates a problem with the new JDK 1.1.6 JIT. The JIT compiler
included with JDK 1.1.6 takes forever to compile the transform() method, thereby
hanging up the virtual machine.
* common/misctests/JitBug
Symantec's JIT seems to optimize away important code. The test compiled using
the standard javac, demonstrates a bug in the JIT on NT4/sp3.
* common/misctests/JitBug1
Demonstrates yet another JIT bug.
* common/misctests/JitTest
Tests equals() method.
* common/misctests/NoHeader
Not a JIT test!
* common/misctests/noop
Not a JIT test!
* common/misctests/Pi
Not a JIT test!
* common/misctests/putfield00802
Tests NullPointerException. Should be removed (common/misctests/clss14702 is a better test).
* common/misctests/t5
Not a JIT test!
* common/misctests/testbug
If this test is run under JRE 1.1.6, it gets the following error: "A nonfatal internal
JIT (3.00.039(x)) error 'Unuse_LRU' hasoccu4rred in: 'testbug.dk ([BI)V': Interpreting method."
* common/misctests/whet
Not a JIT test!
* common/misctests/test.java
Not a JIT test!
* common/overflow
Test StackOverflowException.
* common/pat001
Tests arithmetic series.
* common/Peano
Computes factorials by using the Peano axioms only. Not a test!
* common/PrintProperties
* common/PrintThis
Not a JIT test!
* common/Robert
Tests some exception stuff
* common/Sleeper
Not a JIT test!
* common/tXXX
Do some arithmetic operations, but do not actually report results. Should be removed.
* common/testForBugs/4427606/TestDivByZero
Tests correctness of division by zero handling.
* common/testForBugs/4427606/Security
* common/testForBugs/4446672/TestThreadStart.java
Not a JIT test!
* common/testForBugs/CrashC1
Test for bug in C1.
* common/wide
* common/too_wide
Check for intermediate results that are too wide.
* common/TsdCase
performance benchmarks. Not a test!
* common/verifier/VerifyInitLocal
Makes sure verifier allows initialization of local fields.
* common/verifier/VerifyMergeStack
Makes sure verifier fails when two distinct types meet on operand stack.