Path: blob/master/test/hotspot/jtreg/vmTestbase/jit/description.txt
40943 views
Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.1DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.23This code is free software; you can redistribute it and/or modify it4under the terms of the GNU General Public License version 2 only, as5published by the Free Software Foundation.67This code is distributed in the hope that it will be useful, but WITHOUT8ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or9FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License10version 2 for more details (a copy is included in the LICENSE file that11accompanied this code).1213You should have received a copy of the GNU General Public License version142 along with this work; if not, write to the Free Software Foundation,15Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.1617Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA18or visit www.oracle.com if you need additional information or have any19questions.2021* common/ArrayBounds2223Checks whether the compiler makes incorrect array bounds removal optimizations.2425* common/ArrayTests2627Checks whether array stores and reads are correct for integral types and floating points.2829* common/bounds3031Makes sure that array bounds checking is enabled with the JIT on3233* common/CEETest3435Checks whether comparision operations work properly.3637* common/collapse3839Checks constatnt propagation facilities of the JIT compiler.4041* common/CondExpr4243Checks that code for conditional expressions is generated properly.4445* common/deoptimization/test0146* common/deoptimization/test0247* common/deoptimization/test0348* common/deoptimization/test0449* common/deoptimization/test0550* common/deoptimization/test0651* common/deoptimization/test0752* common/deoptimization/test085354Check compiler deoptimization facilities.5556* common/DivTest5758Checks some special cases of divide operation.5960* common/exception6162This JIT buster test checks to see if a JIT doing register allocation63on a machine with a callees saves ABI for non-volatile registers can64get the exception handling correct. Intel and PowerPC are both such65machines.6667* common/exceptiontest6869Does exactly the same as common/exception7071* common/ExcOpt7273Tests exception handler inside optimizable loop and around it.7475* common/FPCompare/TestFPBinop7677Tests floating point binary operations.7879* common/FPCompare/TestFPCompare8081Test of floating point comparison.8283* common/gen_math/Filtering84* common/gen_math/Loops_185* common/gen_math/Loops_286* common/gen_math/Loops_387* common/gen_math/Loops_488* common/gen_math/Loops_589* common/gen_math/Loops_690* common/gen_math/Loops_791* common/gen_math/Matrix_3d92* common/gen_math/Summ9394These tests check math preciction stuff.9596* common/gen_math/ShortCircuitTest9798A complete set of tests for the binary Java operators {&&, ||, &, |} to99ensure that (C-style) short circuit evaluation is used where required, and100also is not used where prohibited. Checks has been constructed carefully to101be independent of the operators under scrutiny, so that passing these tests102constitutes validation of those operators.103104* common/graph105106The test checks the dynamic class creation and method invokation reflection features. A number of threads is created. They call107methods dynamically and recursively. Also, exceptions, thrown from the dynamically called methods are checked.108109* common/inittest110111Checks correctness of class initialization order.112113* common/inittest2114115Checks that JIT doesn't perform an initialization of class which is never used.116117* common/inline001118119This test is valid in JDK 1.1.4 and in prior JDKs. It120ceased to work in JDK 1.2e. The test relied on the JIT121to inline some final methods and to never inline non-final122methods.123124* common/inline002125126Look for inlined final methods in java.Math. Do this by comparing127execution times against estimates of call overheads for various128method signatures.129130The current (08/04/97) list of inlined methods is short:131abs(float)132abs(double)133sqrt(double) [i386 only]134If new methods are inlined or dropped from the list of inlined135codes, record this fact by changing the value of an element of the136array expectInline. This is done in the method result().137138This test will fail if the JIT is disabled. There are two modes139of operation. The first is to merely record a pass/fail for each140method tested. This output should be machine independent and141suitable for a golden file.142java -Djava.compiler=sunwjit inline002143The other mode is a report generation mode. It reports the144number of iterations, call overhead in nanoseconds, and a judgement145as to whether a method was inlined or not.146java -Djava.compiler=sunwjit inline002 -report147148* common/inline003149* common/inline004150151Check inlining of final methods.152153* common/inline005154155Checks correctness of evaluation order in inlined math functions (?).156157* common/inline006158* common/inline007159160Checks access to final class fields.161162* common/JITSuite163164Does exactly the same as common/inittest2165166* common/jtest167168Does some client-server communications via sockets. Not actually a JIT test!169170* common/Linpack171172Math presiction test.173174* common/loops/arg01175* common/loops/arg03176177Fill arrays in a loops and then makes a number of checks (?)178179* common/loops/arg04180181Checks correctness of interprocedural data flow analysis, tests for recognition of182loop independent dependences between statements in mutually exclusive regions, checks183global data flow analysis.184185* common/loops/arg05186187Checks loop vectorization stuff.188189* common/loops/arg06190191Checks statement reordering, loop distribution, partial loop vectorization, recurrence192in the middle of the loop.193194* common/loops/arg07195196Checks loop interchange, node splitting.197198* common/loops/arg08199200Checks scalar and array expansion.201202* common/loops/arg09203204Checks scalar and array expansion, control flow (loop with independent conditional).205206* common/loops/arg10207208Some control flow-related checks.209210* common/loops/dec01211* common/loops/dec02212* common/loops/dec03213* common/loops/dec04214* common/loops/dec05215* common/loops/dec06216* common/loops/dec07217* common/loops/dec08218* common/loops/dec09219* common/loops/dec10220* common/loops/dec11221222Some aritmetic operations within loops and a number of comparisions (?).223224* common/loops/fuse1225* common/loops/fuse10226* common/loops/fuse101227* common/loops/fuse102228* common/loops/fuse103229* common/loops/fuse105230* common/loops/fuse106231* common/loops/fuse108232* common/loops/fuse11233* common/loops/fuse111234* common/loops/fuse113235* common/loops/fuse116236* common/loops/fuse117237* common/loops/fuse12238* common/loops/fuse13239* common/loops/fuse14240* common/loops/fuse16241* common/loops/fuse17242* common/loops/fuse18243* common/loops/fuse2244* common/loops/fuse3245* common/loops/fuse4246* common/loops/fuse5247* common/loops/fuse6248* common/loops/fuse8249250Check correctness of loop fusion.251252* common/loops/fuse107253* common/loops/fuse109254* common/loops/fuse15255* common/loops/fuse19256* common/loops/fuse7257* common/loops/fuse9258259Construct a number of loops and make some calculations. These tests seems to be260incomplete (incorrectly translated from Fortran).261262* common/loops/private1263264Single dimensional private array, with no carried dependence in the inner265loop - simple subscripts.266267* common/loops/private2268269Single dimensional private array, with no carried dependence in the inner270loop - non-simple subscripts (test incomplete).271272* common/loops/private3273274Single dimensional private array, with no carried dependence275in the inner loop (test incomplete).276277* common/loops/private4278279Loop with condionals, both arms of the conditional cover the entire array280which is private.281282* common/loops/private5283284Single dimensional private array, 2 inner loops; all uses of array in the 2nd loop are285covered by defs in the 1st one.286287* common/loops/private6288289Single dimensional private array; all uses of array in the inner loop are290covered by defs in the outer one.291292* common/loops/private7293294Single dimensional private array, 3 inner loops; all uses of array in the 3rd loop are295covered by defs in the 1st and 2nd one.296297* common/loops/private8298299Single dimensional private array, 3 inner loops; the defs of array in the 2nd loop cover300all the defs and uses within loops 2 and 3.301302* common/loops/private9303304Single dimensional private array, the two loops effectively cover the array.305306* common/loops/private10307308Single dimensional private array, the two asignments to the array in the inner loop309effectively cover the entire array.310311* common/loops/private104312313Loop with condionals. Both arms of the conditional cover the entire array.314315* common/loops/private105316317Single dimensional private array, 2 inner loops; all uses of array in the 2nd loop are318covered by defs in the 1st one.319320* common/loops/private107321322Single dimensional private array, 3 inner loops; all uses of array in the 3rd loop are323covered by defs in the 1st and 2nd one.324325* common/loops/private109326327Single dimensional private array, the two loops effectively cover the array.328329* common/loops/private11330331The two loops each cover disjoint triangular regions of the array. Together they332cover the entire array.333334* common/loops/private110335336Single dimensional private array, the two asignments to the array in the inner loop337effectively cover the entire array.338339* common/loops/private111340341The two loops each cover disjoint triangular regions of the array. Together they342cover the entire array.343344* common/loops/private112345* common/loops/private113346* common/loops/private12347* common/loops/private13348349Private array sections. Even though only a portion of the array is covered by the350definitions, but the uses are covered entirely by the defs in the array.351352* common/loops/private117353354Single dimensional private array, 2 inner loops; all uses of array in the 2nd loop are355covered by defs in the 1st one.356357* common/loops/private118358359Two dimensional private array and some loop unrolling made by hand.360361* common/loops/private119362363Two dimensional private array.364365* common/loops/private120366367Loop peeling before and after the loop.368369* common/loops/private122370371Two dimensional private array.372373* common/loops/private123374375Single dimensional private array; even though not all elements of the array are modified376in the inner loop, and all uses of array are covered.377378* common/loops/private124379380Two dimensional private array. Loop with condionals; both arms of the conditional cover381the entire array, there are uses in the either arm the are entirely covered.382383* common/loops/private125384385Two dimensional private array. Loop with condionals; the uses of the array outside the386conditional are not guaranteed to be covered entirely.387388* common/loops/private126389390Two dimensional array. Here array is not private, as one element is not covered in the loop.391392* common/loops/private128393394Two and single dimensional arrays.395396* common/loops/private1303973982 two dimensional and 1 single dimension array.399400* common/loops/private133401402Single dimensional private array, 2 inner loops.403404* common/loops/private14405406This is an involved test. The first j loop covers 1..m elements of the4071..n array. Since overindexing is prohibited, the compiler should assume408that 1..m is a subset of 1..n. In the k loop first m uses of the array409a() are covered by defs in the j loop. The next m+1..n iterations of the410loop do not have any uncovered uses. Therefore the array a() ought to be411a private array.412413* common/loops/private15414415Similar to common/loops/private14, but uses no conditionals.416417* common/loops/private17418419Single dimensional array, assuming no overindexing.420421* common/loops/private18422* common/loops/private19423* common/loops/private20424* common/loops/private22425426Single dimensional private array, 3 inner loops.427428* common/loops/private214294303 inner loops, the 1st and 2nd loop together cover the entire array, and all the uses431of the array in the 3rd loop are covered.432433* common/loops/private23434435Private array, even though not all elements of the array are modified in inner loop,436and all uses of the array are covered.437438* common/loops/private24439440Conditional inside the loop, 2 inner loops in both arms.441442* common/loops/private25443444Conditional inside the loop, inner loops in both arms and one inner loop after445the conditional.446447* common/loops/private26448* common/loops/private27449* common/loops/private28450451Single dimensional private array, 3 inner loops.452453* common/loops/private29454455Single dimensional private array, 2 inner loops.456457* common/loops/private30458459Conditional inside the loop, inner loops in both arms and one inner loop before460the conditional.461462* common/loops/private31463464Conditional inside the loop, inner loop in both arms.465466* common/loops/private324674682 loops, inner loop inside the 2nd one.469470* common/loops/private33471472Single dimensional private array, 2 inner loops.473474* common/misctests/classes475476No test found!477478* common/misctests/clss14702479480Checks that NullPointerException is thrown.481482* common/misctests/FileViewer483484Not a JIT test!485486* common/misctests/Foo487488Does nothing.489490* common/misctests/fpustack491492Not a JIT test!493494* common/misctests/Jdk116JitProblem495496The test illustrates a problem with the new JDK 1.1.6 JIT. The JIT compiler497included with JDK 1.1.6 takes forever to compile the transform() method, thereby498hanging up the virtual machine.499500* common/misctests/JitBug501502Symantec's JIT seems to optimize away important code. The test compiled using503the standard javac, demonstrates a bug in the JIT on NT4/sp3.504505* common/misctests/JitBug1506507Demonstrates yet another JIT bug.508509* common/misctests/JitTest510511Tests equals() method.512513* common/misctests/NoHeader514515Not a JIT test!516517* common/misctests/noop518519Not a JIT test!520521* common/misctests/Pi522523Not a JIT test!524525* common/misctests/putfield00802526527Tests NullPointerException. Should be removed (common/misctests/clss14702 is a better test).528529* common/misctests/t5530531Not a JIT test!532533* common/misctests/testbug534535If this test is run under JRE 1.1.6, it gets the following error: "A nonfatal internal536JIT (3.00.039(x)) error 'Unuse_LRU' hasoccu4rred in: 'testbug.dk ([BI)V': Interpreting method."537538* common/misctests/whet539540Not a JIT test!541542* common/misctests/test.java543544Not a JIT test!545546* common/overflow547548Test StackOverflowException.549550* common/pat001551552Tests arithmetic series.553554* common/Peano555556Computes factorials by using the Peano axioms only. Not a test!557558* common/PrintProperties559* common/PrintThis560561Not a JIT test!562563* common/Robert564565Tests some exception stuff566567* common/Sleeper568569Not a JIT test!570571* common/tXXX572573Do some arithmetic operations, but do not actually report results. Should be removed.574575* common/testForBugs/4427606/TestDivByZero576577Tests correctness of division by zero handling.578579* common/testForBugs/4427606/Security580* common/testForBugs/4446672/TestThreadStart.java581582Not a JIT test!583584* common/testForBugs/CrashC1585586Test for bug in C1.587588* common/wide589* common/too_wide590591Check for intermediate results that are too wide.592593* common/TsdCase594595performance benchmarks. Not a test!596597* common/verifier/VerifyInitLocal598599Makes sure verifier allows initialization of local fields.600601* common/verifier/VerifyMergeStack602603Makes sure verifier fails when two distinct types meet on operand stack.604605606