summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2015-12-16Detect phi cycles. Nicolas Geoffray
Having reference and non-reference phi equivalent, only happened for the 0/null constant. To avoid such occurences, we must detect phi cycles. bug:25493693 Change-Id: Ie1a8460c3abacca96c299da107fa4407e17dd792
2015-12-15Merge "x86 Baker's read barrier fast path implementation." Roland Levillain
2015-12-15Lower jitthreshold for jit profile test. Calin Juravle
The test still proves to be flacky on the build bots. Lowering the threshold will trigger compilation earlier. Change-Id: Iacabf88d9fbd2a15fd3456f817402c9aaf3ec766
2015-12-15x86 Baker's read barrier fast path implementation. Roland Levillain
Introduce an x86 fast path implementation in Optimizing for Baker's read barriers (for both heap reference loads and GC root loads). The marking phase of the read barrier is performed by a slow path, invoking a new runtime entry point (artReadBarrierMark). Other read barrier algorithms continue to use the original slow path based implementation, which has been renamed as GenerateReadBarrierSlow/GenerateReadBarrierForRootSlow. Bug: 12687968 Change-Id: Ie610c4befc19ff22378a8cba38b422dcacb54320
2015-12-15Merge "Make the JIT the default in ART." Nicolas Geoffray
2015-12-14Increase the sleep time in 554-jit-profile-file Calin Juravle
The previous sleep time wasn't enough. Some tests failed because not all the methods managed to be compiled in time. Change-Id: I4d63b6c3602c72dfa608f62c55e0f484bbfcf900
2015-12-14Disable 554-jit-profile-file for the READ_BARRIER mode. Calin Juravle
Change-Id: I98f5c0aeb0d68b42a587b1f7261d3fe998ca7f8b
2015-12-14Merge "Print more info on why the code_cache test fails in 115-native-bridge." Calin Juravle
2015-12-14Merge "Revert "Revert "Enable profiled guided compilation in dex2oat""" Calin Juravle
2015-12-14Print more info on why the code_cache test fails in 115-native-bridge. Calin Juravle
Change-Id: Ib30893e53a5ed616ae4f6b6bc4d657b0fca846c8
2015-12-14ART: Refactor SsaBuilder for more precise typing info David Brazdil
This patch refactors the SsaBuilder to do the following: 1) All phis are constructed live and marked dead if not used or proved to be conflicting. 2) Primitive type propagation, now not a separate pass, identifies conflicting types and marks corresponding phis dead. 3) When compiling --debuggable, DeadPhiHandling used to revive phis which had only environmental uses but did not attempt to resolve conflicts. This pass was removed as obsolete and is now superseded by primitive type propagation (identifying conflicting phis) and SsaDeadPhiEliminiation (keeping phis live if debuggable + env use). 4) Resolving conflicts requires correct primitive type information on all instructions. This was not the case for ArrayGet instructions which can have ambiguous types in the bytecode. To this end, SsaBuilder now runs reference type propagation and types ArrayGets from the type of the input array. 5) With RTP being run inside the SsaBuilder, it is not necessary to run it as a separate optimization pass. Optimizations can now assume that all instructions of type kPrimNot have reference type info after SsaBuilder (with the exception of NullConstant). 6) Graph now contains a reference type to be assigned to NullConstant. All reference type instructions therefore have RTI, as now enforced by the SsaChecker. Bug: 24252151 Bug: 24252100 Bug: 22538329 Bug: 25786318 Change-Id: I7a3aee1ff66c82d64b4846611c547af17e91d260
2015-12-14ART: Rename ROR test to a shorter name. Vladimir Marko
Keeps the file names of test files within limits. The new name is exactly as long as the next longest name. Change-Id: I4bbfd4cf2aa402a436ba9a5bc9589aa8710b9c15
2015-12-14Merge "Optimizing: Clean up after HRor." Vladimir Marko
2015-12-11Merge "ART: Weaken dex file verifier abstract check" Andreas Gampe
2015-12-11ART: Weaken dex file verifier abstract check Andreas Gampe
We decided to not reject dex files with non-abstract classes containing abstract methods (even though that's broken code). Just log a warning instead. Reported by Nikolay Serdjuk. Bug: 26143249 Change-Id: Iaf981dba70c7c4b9c844ad9f2806278072e3ed52
2015-12-11Revert "Revert "Enable profiled guided compilation in dex2oat"" Calin Juravle
This reverts commit 2306ae0d412cc53cbf64877e4a8c37292dd907d8. Change-Id: I50640009c2fac88ea703812b76549a0e8a6d7584
2015-12-11Merge "Make 'dexdump2 -l xml' include whether each class is an interface." Alex Light
2015-12-11Optimizing: Clean up after HRor. Vladimir Marko
Change-Id: I96bd7fa2e8bdccb87a3380d063dad0dd57fed9d7
2015-12-11Merge "Replace rotate patterns and invokes with HRor IR." Vladimir Marko
2015-12-11Replace rotate patterns and invokes with HRor IR. Scott Wakeling
Replace constant and register version bitfield rotate patterns, and rotateRight/Left intrinsic invokes, with new HRor IR. Where k is constant and r is a register, with the UShr and Shl on either side of a |, +, or ^, the following patterns are replaced: x >>> #k OP x << #(reg_size - k) x >>> #k OP x << #-k x >>> r OP x << (#reg_size - r) x >>> (#reg_size - r) OP x << r x >>> r OP x << -r x >>> -r OP x << r Implemented for ARM/ARM64 & X86/X86_64. Tests changed to not be inlined to prevent optimization from folding them out. Additional tests added for constant rotate amounts. Change-Id: I5847d104c0a0348e5792be6c5072ce5090ca2c34
2015-12-11Merge "Revert "Enable profiled guided compilation in dex2oat"" Calin Juravle
2015-12-11Revert "Enable profiled guided compilation in dex2oat" Calin Juravle
The test still have some flakiness in it which didn't reproduce locally. This reverts commit 500c9be1f261a8a95ae7a25f4f8084f43207f313. Change-Id: I132aff62bf03c2f926aafde6869707573bae9b36
2015-12-11Make the JIT the default in ART. Nicolas Geoffray
Also don't dex2oat an application by default when the JIT is enabled. Change-Id: I32673e80b966f24ca0f153a3e5b9aacaa1931107
2015-12-11Merge "Enable profiled guided compilation in dex2oat" Calin Juravle
2015-12-11Merge "Optimizing: Add direct calls to math intrinsics" Nicolas Geoffray
2015-12-11Merge "For LSE, add a few non-aliasing cases due to pre-existence." Mingyao Yang
2015-12-10Make 'dexdump2 -l xml' include whether each class is an interface. Alex Light
Change-Id: Id83ef52454596ab80b16042e58ff9d00bc5fb8ed
2015-12-10For LSE, add a few non-aliasing cases due to pre-existence. Mingyao Yang
Create reference info for a few instructions that can return a reference. So they will be treated as not-aliasing with future allocations. Change-Id: Ided3db790b95f8d6f1468bbf4b7f3e6d71d81eb2
2015-12-10Merge "ART: Stash a resolved method late in the verifier" Andreas Gampe
2015-12-10Merge "Output static field values in dexdump" Shinichiro Hamaji
2015-12-10ART: Stash a resolved method late in the verifier Andreas Gampe
Invoke-interface should only be called on an interface method. We cannot move the check earlier, as there are other checks that must be done that can fail a class hard. So postpone a push to the dex cache. Clean up the test a bit. Also templatize ResolveMethod with a version always checking the invoke type, and on a cache miss check whether type target type is an interface when an interface invoke type was given. Bug: 21869691 Change-Id: I94cbb23339cbbb3cb6be9995775e4dcefacce7fd
2015-12-10Revert "ART: Check invoke-interface earlier in verifier" Andreas Gampe
This reverts commit dae24142127c64551142a50423085aabdb0a6060. It is important to check the name of the method being called. Bug: 21869691
2015-12-10Optimizing: Add direct calls to math intrinsics Mark Mendell
Support the double forms of: cos, sin, acos, asin, atan, atan2, cbrt, cosh, exp, expm1, hypot, log, log10, nextAfter, sinh, tan, tanh Add these entries to the vector addressed off the thread pointer. Call the libc routines directly, which means that we have to implement the native ABI, not the ART one. For x86_64, that includes saving XMM12-15 as the native ABI considers them caller-save, while the ART ABI considers them callee-save. We save them by marking them as used by the call to the math function. For x86, this is not an issue, as all the XMM registers are caller-save. Other architectures will call Java as before until they are ready to implement the new intrinsics. Bump the OAT version since we are incompatible with old boot.oat files. Change-Id: Ic6332c3555c09393a17d1ad4daf62932488722fb Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
2015-12-10Enable profiled guided compilation in dex2oat Calin Juravle
- add parsing of the profile info saved during JIT. - don't compile methods which are not part of the profile info. - delete old profile hooks. - add test for reading/writing profile. The test is disable in: * interpreter modes: the test needs JIT. * no-dex2oat/no-prebuild: we only save profiling info for the primary oat file. In these modes we don't create oat files and thus nothing is saved. Bug:26080105 Change-Id: Ifdc63dc9d4b537fc79e54c3edc3ae3a462bc30fb
2015-12-10Merge "Fix braino when resolving an invoke-super." Nicolas Geoffray
2015-12-10Fix braino when resolving an invoke-super. Nicolas Geoffray
We should check the actual_method, and not the resolved_method, on whether it is in the same dex file. bug:26022686 Change-Id: I8a9b0c68e162015e0aec397545d0607482949967
2015-12-10ART: Fix bug in DCE not removing phis from catch phi uses David Brazdil
Due to the missing edges between throwing instructions and catch phis DCE needs to manually remove dead instructions from catch phi users, being overly conservative if the inputs are not in the dead blocks. DCE used to do this for normal instructions, but it needs to do the same for phis. Change-Id: I7edfcb84ec6ff7303945d5d5cd436b1d1e95df2a
2015-12-10Output static field values in dexdump Shinichiro Hamaji
This is necessary to generate table-of-contents of .dex files to prevent unnecessary rebuilds for implementation-only changes because these values can be used while compiling other modules. Also modify EncodedStaticFieldValueIterator so it can be used without ClassLoader/Linker. Bug: 24597504 Change-Id: Ida0c839f9dd6961e1c1b3a380e2092042fad03bb
2015-12-08Merge "ART: Check invoke-interface earlier in verifier" Andreas Gampe
2015-12-08ART: Check invoke-interface earlier in verifier Andreas Gampe
Invoke-interface should only be called on an interface method. Move the check earlier, as otherwise we'll try to resolve and potentially inject a method into the dex cache. Also templatize ResolveMethod with a version always checking the invoke type, and on a cache miss check whether type target type is an interface when an interface invoke type was given. Bug: 21869691 Change-Id: Ica27158f675b5aa223d9229248189612f4706832
2015-12-08Merge "Replace proxy class names with deterministic ones for test output." Hiroshi Yamauchi
2015-12-07Replace proxy class names with deterministic ones for test output. Hiroshi Yamauchi
This should avoid potentially flaky test failures in 005-annotations and 044-proxy. (cherrypick commit bc7f8080d1f5d0138cb83cba73a747d43d62c23c) Bug: 25838574 Bug: 12687968 Change-Id: I08765abd82e41258ce4d1d8bb9dffce70c8b6689
2015-12-07Merge "Fix art::x86::IntrinsicLocationsBuilderX86::VisitUnsafeGetLong." Roland Levillain
2015-12-04Merge "Make test 100 not depend on undefined ordering." Alex Light
2015-12-04Make test 100 not depend on undefined ordering. Alex Light
Test 100 tested the officially unspecified ordering of the return values of various reflection methods. This makes the test only check the values contained in the array but not the order. Change-Id: I775646321831f28f722d1db97335231df03ff923
2015-12-04Fix art::x86::IntrinsicLocationsBuilderX86::VisitUnsafeGetLong. Roland Levillain
Change-Id: I7514a882ae73db53178f9ec00191619b871b77a6
2015-12-03Step-wise improvement of range analysis with outer loop induction. Aart Bik
Rationale: Using a step-wise approach (rather than expanding all ranges at once) increases the opportunities for statically removing bound checks, as demonstrated by the new checker tests. Change-Id: Icbfd9406523a069e1fb7508546ea94f896e5a255
2015-12-02Revert "Enable profiled guided compilation in dex2oat" Nicolas Geoffray
Test has flakes: +art F 30865 30865 art/runtime/java_vm_ext.cc:466] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x80 +art F 30865 30865 art/runtime/java_vm_ext.cc:466] string: '��gy�' +art F 30865 30865 art/runtime/java_vm_ext.cc:466] input: '<0x80> 0xd8 0x67 0x79 0x8e 0x7f' +art F 30865 30865 art/runtime/java_vm_ext.cc:466] in call to NewStringUTF +art F 30865 30865 art/runtime/java_vm_ext.cc:466] from java.lang.String Main.getProfileInfoDump(java.lang.String, java.lang.Class, java.lang.Class) This reverts commit 27e17fd81cc30e16e86c9c15498cae7f920c9dfe. Change-Id: Id224b5970c3620c4c71fc0d39ed4a2e4755e5f29
2015-12-02Merge "Revert "Fix test path in libarttest.mk"" Nicolas Geoffray
2015-12-02Revert "Fix test path in libarttest.mk" Nicolas Geoffray
Test has flakes: +art F 30865 30865 art/runtime/java_vm_ext.cc:466] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x80 +art F 30865 30865 art/runtime/java_vm_ext.cc:466] string: '��gy�' +art F 30865 30865 art/runtime/java_vm_ext.cc:466] input: '<0x80> 0xd8 0x67 0x79 0x8e 0x7f' +art F 30865 30865 art/runtime/java_vm_ext.cc:466] in call to NewStringUTF +art F 30865 30865 art/runtime/java_vm_ext.cc:466] from java.lang.String Main.getProfileInfoDump(java.lang.String, java.lang.Class, java.lang.Class) This reverts commit 95f51a71d28be844e68fe3dda3ed0bba6b99f8ad. Change-Id: I32ae3ad8e2e6c4eed1d3f79e5498709c43afadcb