summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-08-10ART: Change UnresolvedMergedType merge Andreas Gampe
Change to use IsUnresolvedTypes. Bug: 22881413 Change-Id: Ic27b97b475b28a5bdf994ea5178767e0efb0e752
2015-08-10ART: Change UnresolvedMergedType internal representation Andreas Gampe
Squashed cherry-picks: * 067f1ed7816cf4eb5d6258ca31b387ddb2073ab7 * 750f7c2827318f6d07620f2ef0321218ea4d8670 * 2f90b3415aadc2587d26c767c6bfb235797119a8 * 2ea7b70b2347969f3735bd0ec1b462bd6d2ff1bd Bug: 22881413
2015-08-08Fix a bug in the register allocator around pair allocation. Nicolas Geoffray
We may get hints that do not work with the current implementation of register pairs, which forces the allocation of (low + 1) for the high register. For example, if the hint is EBX, we will allocate ESP for the high register. bug:23043730 (cherry picked from commit f29758111e71a7d14f3e52d78773561a5d59961f) Change-Id: Ib395e36616017a87d3055218d72417f4e9ff6501
2015-08-07Tighten default inlining settings when using the space filter. Roland Levillain
(cherry picked from commit a215b95d03cfe713018a245553b74d7eeee813df and amended) Bug: 21868508 Change-Id: Ic83813a966cef18e59447083926bf033aa587154
2015-08-06ART: Fix the simplifier for add/sub Serguei Katkov
Instruction simplifier for add/sub should not proceed with floats because that might cause the incorrect behavior with signed zero. Bug: 23001681 Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com> (cherry picked from commit 115b53f609e74672fa93eea1845bb17340d5112a) Change-Id: I9928724c4158b3961e32e376b9203fe01ba2e442
2015-08-05ART: x86_64 RoundDouble/Float intrinsics should initialize out value. Pavel Vyssotski
x86_64 RoundDouble intrinsic should initialize output register for the case of "inPlusPointFive >= maxLong" as expected. The same for the RoundFloat intrinsic. Fixed also the out register type in CreateSSE41FPToIntLocations provoking a DCHECK failure. Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com> (cherry picked from commit 9ca257196b46fd7629bce0b338580e571e4113a8) Bug: 22973442 Change-Id: If974e79d33311587d0b541a01ca8a4c9c11b9468
2015-07-30Don't dump stack when deleting an invalid local ref Mathieu Chartier
Bug: 21724724 Change-Id: Ifa99df9ee9f3265038a0c0f7944e834e42c498d4
2015-07-30Allow for fine tuning the inliner. Calin Juravle
Bug: 21868508 (cherry picked and squashed from commits ec74835a7e4f2660250a2f3f9508cbbe5269e49a and 0941b9d48a9a8c6d80a1af7a0d0fc9f80fe2b9a1) Change-Id: I1750e6bea20321d04680132281a6c2924531c5ae
2015-07-28HDeoptimize should hold values live in env. Mingyao Yang
Values that are not live in compiled code anymore may still be needed in interpreter, due to code motion, etc. (cherry-picked from commit 718493c6c3c8e380663cb8a94e57ce160a6c473f) Bug: 22665511 Change-Id: I8b85833c5c462f8fe36f86d6026a51b07563995a
2015-07-27Bugfix: Java char is 16 bits, can not be treated as boolean. Fredrik Roubert
Using SetFieldBooleanVolatile() and SetFieldBoolean() happens to work for char values that only use the lower 8 bits, but is a mistake that was introduced by the "Add AccessibleObject and Field to mirror" commit: https://android.googlesource.com/platform/art/+/daaf326 (cherry picked from commit 3152c82b0d33e5fb0a4aa964ea58451c72734444) Bug:22772717 Change-Id: Iec02ba3084c992ea239ecef688d7d29c7e21ae16
2015-07-24Merge "ART: Change the stack dump format to be in line with debuggerd" into ↵ Andreas Gampe
mnc-dev
2015-07-23ART: Change the stack dump format to be in line with debuggerd Andreas Gampe
Make offsets 16 digits on 64-bit platforms. Add the ability to provide the build fingerprint, and print it in the traces output. Bug: 22693991 Change-Id: Ibd3d3b3bd65dce84acfb97a487807d6f280a9508
2015-07-23ART: Fix Quick/Optimizing suspend check assumption mismatch. Vladimir Marko
Quick's SuspendCheckElimination (SCE) expects that every method contains a suspend check and it eliminates suspend checks in loops containing an invoke. Optimizing eliminates the suspend check from leaf methods, so the combination of a Quick-compiled loop calling an Optimizing-compiled leaf method can lead to missing suspend checks and potentially leading to ANRs. Enable Quick's kLeafOptimization flag to remove suspend checks from leaf methods and disable Quick's SCE. This aligns the suspend check placement for the two backends and avoids the broken combination. Currently, all methods containing a try-catch are compiled with Quick, so it's relatively easy to create a regression test. However, this test will not be valid when Optimizing starts supporting try-catch. Bug: 22657404 (cherry picked from commit d29e8487ff1774b6eb5f0e18d854415c1ee8f6b0) Change-Id: I733c38bf68bfc2c618f2f2e6b59f8b0e015d7be1
2015-07-21Merge "Don't check code pointer for proxies in ArtMethod::GetQuickFrameInfo" ↵ Mathieu Chartier
into mnc-dev
2015-07-21Don't check code pointer for proxies in ArtMethod::GetQuickFrameInfo Mathieu Chartier
(cherry picked from commit 7c0fe5e99d1d150b3072a3ae4cd0f0362fe32834) Bug: 22541058 Change-Id: Id084a69ccd9835147ec71df6bb759e0f1b5e6fbf
2015-07-21Get non proxy method for StackDumpVisitor Mathieu Chartier
Fixes failing DCHECK. (cherry picked from commit ef76c3fa57ddf3f7ca32e118f599da8cb4eb1560) Bug: 22553459 Change-Id: I6fe1012f9a5f8d29cb98bf25e3a279da51c5e1c0
2015-07-17Reduce space filter threshold to 128. Nicolas Geoffray
In order to get closer to our code increase limit. Bug:21868508 (cherry picked from commit 432bf3d525dd0736c91238d69e29b4db6a2f7b80) Change-Id: Iab19fe99a8a869b0fb841bac317016e4a3dc00e2
2015-07-17Merge "ART: Boolean simplifier fix" into mnc-dev Nicolas Geoffray
2015-07-16ART: Boolean simplifier fix Serguei Katkov
Boolean simplifier should not remove condition instruction if it has side effects. (cherry picked from commit 108ceb48edea654c544b483c302212e43d79a472) Change-Id: I00dd595da1bba0f027f5c8647035e9fd8ba62ee1
2015-07-16ART: DCE should know that array-length can throw NPE Serguei Katkov
array-length can throw NPE so it should be taking into account. Bug: 22521944 Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com> (cherry picked from commit b016c6dd3c30b04104a0a43dc294ce93e5f63874) Change-Id: I6232430a02f9e6d156ad2aae0eb5a630118c0e79
2015-07-13Merge "Fix cfi information for x86." into mnc-dev Christopher Ferris
2015-07-13Fix cfi information for x86. Christopher Ferris
With this change, I can now enable debug malloc fully. Bug: 19071092 Change-Id: Iabfb18505feffb480504a8bbfbac60dd219ed48a
2015-07-13Re-enable run-test 449-checker-bce on MIPS64. Roland Levillain
(cherry picked from commit c3f73f788a2f46e4007433bd3ed3dce64e2f5f33) Bug: 21555893 Change-Id: I92e11637cc1f8f694e4d4138512cbcf47e22a249
2015-07-13Merge "Initialize pDeoptimize quick entry pointer for Mips." into mnc-dev Roland Levillain
2015-07-13Initialize pDeoptimize quick entry pointer for Mips. Douglas Leung
This fixes art test 449-checker-bce. (cherry picked from commit 2e8bf554574516e0e6a9b10ccd9f13bf56189795) Bug: 21555893 Change-Id: I9a87c430168ea35984289b0b4a417aa0c659b6d5
2015-07-13Merge "Return an invalid StackMap when none can be found." into mnc-dev Nicolas Geoffray
2015-07-13Return an invalid StackMap when none can be found. Nicolas Geoffray
bug:22389275 Partial cherry-pick of: https://android-review.googlesource.com/#/c/151853 (commit e12997fbce8e22431be58cac9db2535f7b4a7ac3) Change-Id: Ia30b817be1b50d97243ba32967eeee359ed679c4
2015-07-11Fix proxy handling in FindDeclaredVirtualMethod Mathieu Chartier
Added missing GetInterfaceMethodIfProxy and test. Fixed formatting. Bug: 22411819 https://code.google.com/p/android-developer-preview/issues/detail?id=2635 (cherry picked from commit 72156e28fd6bc72ac965b29446f8801b2e82f2fd) Change-Id: I3eece9c72091bb9d0262aacf0a75ec6908b5f4d2
2015-07-09ART: Change merges with Undefined to Undefined Andreas Gampe
The result of a merge with an Undefined type should be Undefined. Conflicts are allowed to be copied around, but Undefined registers should not be touched at all, except to be written into. Add a success test case (the register isn't used) and a fail test case (the register is tried to be copied). Bug: 22331663 Bug: 22371999 (cherry picked from commit 97a1ff353f254b6e46c7501fe3f0e3254c2517b4) Change-Id: I9697ce31c1d2ab5aee0433dcf1253bcca79c2983
2015-07-09ART: Fix test Andreas Gampe
Fixes a breakage from 38536287f61c9c0fc3bab8c1950cf8c74881482a. Ensure that v4 is not undefined when an exception may be thrown (at the new-instance). Bug: 22331663 Bug: 22371999 (cherry picked from commit 7135ff0fdfd02796d40e7ef3c7527ff127512bd3) Change-Id: Ice36ddda5ca92ea32fa88523dd616d4f2a61027e
2015-07-09Merge "ART: Improve the symbolize script" into mnc-dev Andreas Gampe
2015-07-09ART: Improve the symbolize script Andreas Gampe
Allow a list of files to pull. This improves turnaround time when tracking down perf hotspots. Bug: 21760614 Change-Id: I824e875053940d59eb00f9d796ef402632905c39
2015-07-09Support compiling run-tests with jack Sebastien Hertz
This CL adds support to compile run-test source files with jack. When a test needs to rely on class files, we use jill to convert them to a jack library. We need to pass the full classpath to jack containing at least core classes (like java.lang.Object). This means the Android tree must have been compiled with jack first so we find all the necessary classes.jack files. Some tests still rely on dex files generated with the old toolchain. We keep building them this way for the moment and will update them later, when they get ready for Jack. Also updates a few tests dealing with garbage collection to avoid a situation where a reference can be retained by a local DEX register. Bug: 19467889 (cherry picked from commit 19ac0276208f0afef6ba8a4ab34b74a59b8d11d7) Change-Id: Ia5a989b83430ffe8298a869a1da970b756721bb0
2015-07-08ART: Allow to set and copy conflicts in the verifier Andreas Gampe
As long as conflicts are not actively being used, it is OK to set them in a register line or copy them around. Bug: 22331663 (cherry picked from commit 38536287f61c9c0fc3bab8c1950cf8c74881482a) Change-Id: I61999e2d9c92f9bdedcb0a5dea54df3c5bb130ca
2015-07-08ART: Avoid soft- after hard-fail in verifier Andreas Gampe
Follow-up to 414000ec4d728b5c85f8c6dee4f867fecde59b01. Bug: 21886894 Bug: 22245124 (cherry picked from commit 890da29d279c44923f9271450b8a4423b1267655) Change-Id: I3728187bd8526cdf84f95b123e6fad5d6c5a8b3c
2015-07-08Merge "ART: Release inputs in Long.reverse intrinsic in x86" into mnc-dev Andreas Gampe
2015-07-08ART: Release inputs in Long.reverse intrinsic in x86 Andreas Gampe
In the worst case we are using two temps each for input and output. Then we do not have a temp left over for the swap operations. The input is dead, however, after the first swap. So try to release it (a no-op if it isn't actually a temp). Bug: 22324327 (cherry picked from commit 575422fa5be7389bdaff5e2d25dd87b1d2d4de85) Change-Id: I1fc50159afdad14160e34abeaf4670958171d6b2
2015-07-07ART: Fix opsize in LoadArgDirect Andreas Gampe
If the destination register is a reference, use kReference for the op size. Bug: 22244733 (cherry picked from commit 185a5586c8b796e770e9b4b7ac2befa8ccdaca7e) Change-Id: Idf52f2ee4c65b5dc41cb66257d95281dc6f32255
2015-07-03Add implicit null pointer and stack overflow checks for Mips. Douglas Leung
(cherry picked from commit 22bb5a2ebc1e2724179faf4660b2735dcb185f21) Bug: 21555893 Change-Id: I2a995be128a5603d08753c14956dd8c8240ac63c
2015-07-02Do not create a HBoundType when the instruction is non-null. Nicolas Geoffray
We don't need to refine the type after a null check, if the instruction is known non null or null. As a side effect, this avoids replacing HLoadClass instructions with HBoundType instructions. bug:22116987 Change-Id: I565ae95db5a64faec30e026674636e398e0bf445
2015-07-01Merge "ART: Symbolize all oat files in /data folder." into mnc-dev Andreas Gampe
2015-07-01Merge "ART: Fix data loss when symbolizing oat files." into mnc-dev Andreas Gampe
2015-07-01ART: Symbolize all oat files in /data folder. Zheng Xu
Now we store oat files not only in /data/dalvik-cache, but also in other places. This patch tries to pull all oat files from device /data folder. Bug: 21760614 (cherry picked from commit 468bcf63207420f18c0c8a8621aa2d774393c155) Change-Id: Icf81cf28c29da2e248e4fbd84f5920f46ddc4cd6
2015-07-01ART: Fix data loss when symbolizing oat files. Zheng Xu
Bug: 21760614 (cherry picked from commit 98088c424efd45ea3c172d4bc16e191f26a007cc) Change-Id: I1b40b8ee313a4d187439d969d083d12fb3997cda
2015-07-01Merge "Do not replace a live phi with a dead phi." into mnc-dev Nicolas Geoffray
2015-07-01Merge "Revert "Revert "Do not update the type of something we already ↵ Nicolas Geoffray
know.""" into mnc-dev
2015-06-30ART: Remove bad FindSymbol call Andreas Gampe
The removed call is superfluous under normal operation and harmful when running a native-bridged library. Bug: 22194296 Bug: https://code.google.com/p/android-developer-preview/issues/detail?id=2367 (cherry picked from commit 8fec90b421732b3eb278555f57aaf48fda4fa4ba) Change-Id: I3eb8f435a6a974a3e87a370b254ba8752f2a59b3
2015-06-30Merge "ART: Unlink target oat file before compiling" into mnc-dev Andreas Gampe
2015-06-30ART: Unlink target oat file before compiling Andreas Gampe
Dex2oat must create a new file (new inode) when writing to a target given by name, as the existing file may be in use. So unlink any existing file first. Bug: 22047255 Change-Id: Ief942c71564076e39c1e8340d5c4c55286f75896
2015-06-29Do not replace a live phi with a dead phi. Nicolas Geoffray
A dead phi is not properly typed. Therefore, always use the live phi equivalent instead. bug:21865466 (cherry picked from commit 4230e1895b915a22363452823b0e51eabe92cb60) Change-Id: If9a3313fc953c2eb4be85b625676e48112fcb1f6