summaryrefslogtreecommitdiffstats
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
* Merge "run-test: enable checker in dev mode"Calin Juravle2015-01-271-2/+12
|\
| * run-test: enable checker in dev modeCalin Juravle2015-01-271-2/+12
| | | | | | | | | | | | | | Also, use explicit flush (instead of passing flush parameter to print) to enable better compatibility across python versions. Change-Id: Iaf294d88e932b778d5dce7f3c2b8eca775849973
* | Fix 114-ParallelGC.Hiroshi Yamauchi2015-01-261-1/+5
| | | | | | | | | | | | | | | | | | | | | | In main(), the outer ArrayList may still be reachable after the try-catch under the interpreter or a compiler without a liveness analysis and the last ArrayList allocation may fail due to an OOME. This fixes 114-ParallelGC under the CC and the GSS collectors. Bug: 12687968 Change-Id: Ie1082d38b2a677ec70fdc23b0187ae8ce0612808
* | Quick: Fix range check for intrinsic String.charAt() on x86.Vladimir Marko2015-01-261-1/+37
|/ | | | | Bug: 19125146 Change-Id: I274190a7a60cd2e29a854738ed1ec99a9e611969
* ART: On shutdown, only warn on mutex contentionAndreas Gampe2015-01-233-0/+54
| | | | | | | | | | Do not abort, as daemon threads may still be active. Bug: 17894429 (cherry picked from commit c0440f69ebf051ff2ffdc00de51005a040014462) Change-Id: I7c1d50ff8d4a5e150279e703a69c8f2f1d423e6b
* Fix makefile error.Nicolas Geoffray2015-01-231-3/+3
| | | | Change-Id: I797de0bed7b9c51cd7889de5144b8dbfd641335d
* Mark test as failing for optimizing.Nicolas Geoffray2015-01-231-1/+2
| | | | Change-Id: I928ff56d232a647e8227f2b97a8f4a51791a5f95
* Merge "Fix exception handling during deoptimization"Sebastien Hertz2015-01-239-10/+239
|\
| * Fix exception handling during deoptimizationSebastien Hertz2015-01-239-10/+239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When interpreting a deoptimized shadow frame, we may start with a pending exception thrown by a previous deoptimized shadow frame (from a previous invoke). Therefore, we need to handle it before executing any instruction, otherwise we execute incorrect code. Because we need the DEX pc of the throwing instruction to find a matching catch handler, we initialize deoptimized shadow frames with the current DEX pc at the time the stack is deoptimized. When we are about to interpret a deoptimized shadow frame, we need to update the shadow frame with the DEX pc of the next instruction to interpret. There are three cases: - if there is no pending exception, this is the instruction following the current one. - if there is a pending exception and we found a matching catch handler, this is the first instruction of this handler. - if there is a pending exception but there is no matching catch handler, we do not execute the deoptimized shadow frame and continue to its caller. The verifier now fails when a method starts with a move-exception instruction. Indeed we cannot start executing a method with a pending exception. Bug: 19057915 Bug: 19041195 Bug: 18607595 Change-Id: I355ac81e6ac098edc7e3cc8c13dbfa24a2969ab2
* | Fix 116-nodex2oat to use arguments in custom run scriptBrian Carlstrom2015-01-221-0/+2
| | | | | | | | Change-Id: I47a834da921930764abdff8fdce09b026b9ad483
* | Merge "ART: Rewrite ParallelGC test"Andreas Gampe2015-01-221-95/+76
|\ \
| * | ART: Rewrite ParallelGC testAndreas Gampe2015-01-211-95/+76
| | | | | | | | | | | | | | | | | | | | | Make the setup simpler and less prone to OOME problems. Bug: 19027813 Change-Id: Ie2dbe1579a45d554f207a9bf84d53303acbe79d5
* | | Merge "ART: Fix GenInlined functions"Vladimir Marko2015-01-221-0/+58
|\ \ \
| * | | ART: Fix GenInlined functionsChao-ying Fu2015-01-211-0/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes Mir2Lir::GenInlinedReverseBytes, Mir2Lir::GenInlinedAbsInt, Mir2Lir::GenInlinedAbsLong, Mir2Lir::GenInlinedFloatCvt, Mir2Lir::GenInlinedDoubleCvt, X86Mir2Lir::GenInlinedSqrt, X86Mir2Lir::GenInlinedMinMaxFP, X86Mir2Lir::GenInlinedMinMax, X86Mir2Lir::GenInlinedPeek, and X86Mir2Lir::GenInlinedReverseBits to generate no code, when results are unused. New calls without assignments are added to 082-inline-execute. Change-Id: I7076e9ddbea43545315f2aeb677c63a8a6e95224 Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
* | | | Clean-up 116-nodex2oat unit testSerguei Katkov2015-01-211-6/+0
|/ / / | | | | | | | | | | | | | | | | | | | | | Running with prebuilt is added to black-list, so no need to handle this in the test itself. Change-Id: I334f291eb4ec2703dbb1f1e4575232fa67ab7fb8 Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
* | | Merge "Do not use HNot for creating !bool."Nicolas Geoffray2015-01-213-0/+34
|\ \ \
| * | | Do not use HNot for creating !bool.Nicolas Geoffray2015-01-213-0/+34
| |/ / | | | | | | | | | | | | | | | HNot folds to ~, not !. Change-Id: I681f968449a2ade7110b2f316146ad16ba5da74c
* | | Record implicit null checks at the actual invoke time.Calin Juravle2015-01-213-0/+263
|/ / | | | | | | | | | | | | | | | | | | | | | | | | ImplicitNullChecks are recorded only for instructions directly (see NB below) preceeded by NullChecks in the graph. This way we avoid recording redundant safepoints and minimize the code size increase. NB: ParallalelMoves might be inserted by the register allocator between the NullChecks and their uses. These modify the environment and the correct action would be to reverse their modification. This will be addressed in a follow-up CL. Change-Id: Ie50006e5a4bd22932dcf11348f5a655d253cd898
* | ART: Invoke Checker from run-test scriptsDavid Brazdil2015-01-199-6/+571
|/ | | | | | | | | | | | | | | This patch moves Checker-based tests of the optimizing compiler into the art/test directory and modifies the run-test scripts to dump the CFG during compilation and to verify the graph using Checker as part of the "running" stage. Outputs generated by running the test and running Checker are concatenated and compared with expected.txt. Checker is invoked only if the test's name name matches the format "<number>-checker-*" and it's currently enabled only for optimizing + host configs. The tests are still invoked on other configs but without Checker. Change-Id: Ib24da808cd4bca66f07e0dbeb913a418065f2859
* Do not use STMP, it conflicts with the calling convention.Nicolas Geoffray2015-01-193-0/+51
| | | | | | | Hard-float calling convention uses S14 and D7 for argument passing, so we cannot use them. Change-Id: I77a2d8c875677640204baebc24355051aa4175fd
* Merge "ART: Mips64 runtime support"Andreas Gampe2015-01-162-2/+2
|\
| * ART: Mips64 runtime supportAndreas Gampe2015-01-152-2/+2
| | | | | | | | | | | | Interpret-only Mips64 runtime support. Change-Id: Iee22d0c8c77105d9b2f03a67dc4e09957fe0ab0a
* | Increase default timeoutMathieu Chartier2015-01-152-2/+2
|/ | | | | Bug: 19027813 Change-Id: I13af576dc3e980dc82e466435f41b322e2cd873e
* ART: Optimizing compiler intrinsicsAndreas Gampe2015-01-151-0/+22
| | | | | | | | | Add intrinsics infrastructure to the optimizing compiler. Add almost all intrinsics supported by Quick to the x86-64 backend. Further intrinsics require more assembler support. Change-Id: I48de9b44c82886bb298d16e74e12a9506b8e8807
* ART: Increase run-test 114 Java-level timeoutAndreas Gampe2015-01-151-1/+4
| | | | | | | Increase the timeout to be larger than the run-test timeout. That way ART will dump all threads when running the test on the host. Change-Id: I842b056bba650e5c7c3293376a48d48b7468e73d
* Disable test for NDEBUG, it uses libarttest.so.Nicolas Geoffray2015-01-151-0/+1
| | | | Change-Id: Ie275583aec421f3a40663ff44388a73e890ff894
* Merge "ART: Simple structural class check"Andreas Gampe2015-01-158-0/+176
|\
| * ART: Simple structural class checkAndreas Gampe2015-01-148-0/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a simple check to class-loading when the embedded dex file in an oat file and the dex file on the class path where we found the class do not match. We require that the number of methods and fields do not change, as that will almost certainly mean that quickened and other compiled offsets are wrong now. This is a reasonably lightweight change, but we should investigate a full comparison including name and type of members. Bug: 17937814 Bug: 18708951 (cherry picked from commit 15a33b3f88546bce85dcb9d28caf200da51154d7) Change-Id: Icb9638bebd369ab23822817f4a97c8dd8625fea5
* | Merge "ART: Dump all threads on test timeout"Andreas Gampe2015-01-141-2/+9
|\ \ | |/ |/|
| * ART: Dump all threads on test timeoutAndreas Gampe2015-01-141-2/+9
| | | | | | | | | | | | | | | | | | Use SIGRTMIN+2 as a special signal to dump all threads similar to SIGQUIT. Use nested timeouts to enforce a test timeout and dump the threads in a deadlock. Bug: 18933933 Change-Id: I4209047eeca07ff360d7c19922d5b5da64fd69a5
* | Merge "Fix wide volatile IGET/IPUT on ARM without atomic ldrd/strd."Vladimir Marko2015-01-141-1/+138
|\ \
| * | Fix wide volatile IGET/IPUT on ARM without atomic ldrd/strd.Vladimir Marko2015-01-141-1/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | If ldrd/strd isn't atomic, IPUT_WIDE uses ldrexd+strexd and we need to record the safepoint for the ldrexd rather than strexd. IGET_WIDE was simply missing the memory barrier. Bug: 18993519 Change-Id: I4e9270b994f413c1a047c1c4bb9cce5f29e42cb4
* | | Merge "Implement ParallelMoveResolver::Swap for doubles on arm."Nicolas Geoffray2015-01-143-0/+52
|\ \ \
| * | | Implement ParallelMoveResolver::Swap for doubles on arm.Nicolas Geoffray2015-01-143-0/+52
| |/ / | | | | | | | | | | | | | | | Currently reserve a global register DTMP for these operations. Change-Id: Ie88b4696af51834492fd062082335bc2e1137be2
* | | Merge "ART: Hprof cleanup"Andreas Gampe2015-01-144-1/+166
|\ \ \ | |_|/ |/| |
| * | ART: Hprof cleanupAndreas Gampe2015-01-134-1/+166
| |/ | | | | | | | | | | | | | | Refactor things a bit to make it easier to stream. Add a simple test that dumps the heap and runs hprov-conf on it. Change-Id: I79a9ad37d4cf41fa8d63d039586aa80394d96005
* | Follow up on CL 122665.Hiroshi Yamauchi2015-01-131-1/+2
|/ | | | | | | | | | | | | | | | | | We now do the two-step memory protection strategy (first protect the from space with PROT_READ and later protect it with PROT_NONE) only if the from space is a rosalloc space (excluding the more common bump pointer space case). This strengthens the GC verification for the bump pointer space case as we avoid the case where mutators run while the from space is PROT_READ rather than PROT_NONE. Add a command line flag to override the minimum interval for the hspace compaction for OOM and set it to zero in the gcstress/gcverify run-tests to run the hspace compaction more frequently in tests. Fix some comments. Bug: 18960494 Change-Id: I518b011e026f578e53c4ec269cfb82865b0fae68
* Re-enable ParallelGC test for gcstress modeMathieu Chartier2015-01-071-2/+1
| | | | | | | Ran the test hundreds of times with gcstress without any failures. Bug: 16406852 Change-Id: Idd2d248bd43bfb20ad7313e12ce3dce85bea3de5
* Fix signal test to work with gcstressMathieu Chartier2015-01-072-3/+1
| | | | | | | | | | | | | We now avoid running GC if we are handling a stack overflow, this helps prevent running past the end of the stack overflow reserved bytes. Added logic in ThrowStackOverflowError to use a stack overflow exception without a stack trace if we fail to allocate the stack trace. Bug: 16406852 Change-Id: Ib34e235cd0af6d7c4c93c9705fa822f2b9b23b38
* ART: Fix divide-by-zero for ARMAndreas Gampe2015-01-063-0/+31
| | | | | | | | There was an infinite loop in the code generation for a divide by literal zero. Bug: 18887754 Change-Id: Ibd481918d3c6d7bc62fdd1a6807042009f561d95
* Opt Compiler: ARM64: Add support for rem-float, rem-double and volatile.Serban Constantinescu2015-01-055-22/+183
| | | | | | | | Add support for rem-float, rem-double and volatile memory accesses using acquire-release and memory barriers. Change-Id: I96a24dff66002c3b772c3d8e6ed792e3cb59048a Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
* ART: Fix verification of constructors.Stephen Kyle2014-12-224-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: A constructor must call its superclass constructor. However, if one replaces the invoke-direct superclass.<init>() instruction with a variety of instructions, the verifier would NOT complain that the superclass constructor hadn't been called. Detailed explanation: This was because if we are verifying the return-void insn of a constructor, then we check that the register line doesn't contain a register with an UninitializedThis type. With a method like follows: Class.<init>()V: return-void Then we hit the return-void, see the UninitializedThis, and fail the method. However, with a method like follows: Class.<init>()V: nop return-void Any insn that continues or branches onto a return-void instruction will mark all of the registers as Conflict. This meant that the check in return-void for an UninitializedThis residing the register line would _always_ pass if there were any insns before it - the entire line had been set to Conflict. The fix is to bring the check for an UninitializedThis forward to the point just before we set all registers to Conflict, if we're about to hit a return-void insn in a constructor. It still needs to be done again in the verification of return-void itself, to avoid the solo return-void case. This patch also deals with the case where the only remaining UninitializedThis reference is overwritten, to avoid a method like the following from getting through verification: Class.<init>()V: const/4 v0, 0 return-void Bug: 18800943 Change-Id: I2e317261844d3b6c78e35228669f3da173316570 Fuzzed-With: https://android-review.googlesource.com/#/c/119463/
* Merge "ART: Swap-space in the compiler"Andreas Gampe2014-12-221-0/+4
|\
| * ART: Swap-space in the compilerAndreas Gampe2014-12-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | Introduce a swap-space and corresponding allocator to transparently switch native allocations to memory backed by a file. Bug: 18596910 (cherry picked from commit 62746d8d9c4400e4764f162b22bfb1a32be287a9) Change-Id: I131448f3907115054a592af73db86d2b9257ea33
* | Clean up dead loops before suspend check elimination.Vladimir Marko2014-12-193-0/+31
|/ | | | | | | | Get rid of BasicBlock::KillUnreachable() and just Kill() unreachable blocks from the DFS order calculation. Bug: 18718277 Change-Id: Icaf7b9c2320530e950f87e1e2e2bd1fa5f53cb98
* When inlining, also look whether we can allocate registers.Nicolas Geoffray2014-12-181-0/+17
| | | | | | arm and x86 currently don't allocate registers for floating point and long operations, so we can't inline methods with these operations. Change-Id: I11e4b97ddbe90f4978f2abe1081fb0f849acb811
* Inlining support in optimizing.Nicolas Geoffray2014-12-153-0/+87
| | | | | | | | | | Currently only inlines simple things that don't require an environment, such as: - Returning a constant. - Returning a parameter. - Returning an arithmetic operation. Change-Id: Ie844950cb44f69e104774a3cf7a8dea66bc85661
* Add regression test for deadlock caused by Thread.getAllStackTracesMathieu Chartier2014-12-123-0/+55
| | | | | | | | | | Also added stress test for Thread.getAllStackTraces. The test calls Thread.getAllStackTraces from multiple threads to stress race conditions which can cause deadlocks. Bug: 18661622 Change-Id: Ideee7073fdcce784414808d08eca9ea310240073
* ARM: Combine multiply accumulate operations.Ningsheng Jian2014-12-113-0/+173
| | | | | | | Try to combine integer multiply and add(sub) into a MAC operation. For AArch64, also try to combine long type multiply and add(sub). Change-Id: Ic85812e941eb5a66abc355cab81a4dd16de1b66e
* Merge "ART: Extend run-test 015"Andreas Gampe2014-12-112-0/+447
|\