a1d2f957a21319d1110bebb9a52f46fd1c67ffaf |
|
21-Apr-2017 |
Andreas Gampe <agampe@google.com> |
ART: Clean up art_field.h Clean up the header. Fix up other headers including the -inl file, in an effort to prune the include graph. Fix broken transitive includes by making includes explicit. Test: m Change-Id: I6ff2d6f89b741d8188e19426eccf4743fec688fc
|
c6ea7d00ad069a2736f603daa3d8eaa9a1f8ea11 |
|
02-Feb-2017 |
Andreas Gampe <agampe@google.com> |
ART: Clean up art_method.h Clean up the header. Fix up other headers including the -inl file, in an effort to prune the include graph. Fix broken transitive includes by making includes explicit. Introduce new -inl files for method handles and reference visiting. Test: source build/envsetup.sh && lunch aosp_angler-userdebug && mmma art Test: source build/envsetup.sh && lunch aosp_mips64-userdebug && mmma art Change-Id: I8f60f1160c2a702fdf3598149dae38f6fa6bc851
|
6b2dc3156a2140a5bfd9cbbf5d7dad332ab5f5bd |
|
14-Mar-2017 |
Narayan Kamath <narayan@google.com> |
ART: Get rid of most of java.lang.DexCache. All remaining functionality is moved over to native. The DexCache object itself is allocated in the Java heap, even though there's no longer much of a reason to do so. It can be changed in a future change if needed. This also renames mirror::Class:GetInterfaces to GetProxyInterfaces since it's supposed to be called only for proxies. Test: test-art-host, cts -m CtsLibcoreTestCases Change-Id: Ie261f22a9f80c929f01d2b456f170c7a464ba21c
|
f44d36c8423f81cbb5e9f55d8813e26ffa1a7f3b |
|
14-Mar-2017 |
Vladimir Marko <vmarko@google.com> |
Revert^2 "Hash-based DexCache field array." Test: testrunner.py --host --interpreter Bug: 30627598 This reverts commit 6374c58f2ea403b3a05fb27376110fe4d0fc8e3f. Change-Id: I275508e288a85d3aa08f7405a1a4f362af43b775
|
8d6768d47b66a688d35399d524ad5a5450e9d9d4 |
|
14-Mar-2017 |
Vladimir Marko <vmarko@google.com> |
Revert^6 "Hash-based dex cache type array." Fixed ImageWriter to write class table also if it contains only boot class loader classes. Added a regression test and added extra checks for debug-build to verify that dex cache types from app image are also in the class table. Removed some unnecessary debug output. Test: 158-app-image-class-table Bug: 34839984 Bug: 30627598 Bug: 34659969 This reverts commit 0b66d6174bf1f6023f9d36dda8538490b79c2e9f. Change-Id: I6a747904940c6ebc297f4946feef99dc0adf930c
|
bcd9b99d9613400e6de8f082778a64c1018511d9 |
|
13-Mar-2017 |
Vladimir Marko <vmarko@google.com> |
Revert^5 "Hash-based dex cache type array." For app images, ImageWriter does not add boot image classes to the app image class table even though it keeps them in the dex caches. The reason for that is unknown, the code looks OK. Bug: 34839984 Bug: 30627598 Bug: 34659969 Also reverts "Improve debugging output for a crash." This reverts commits bfb80d25eaeb7a604d5dd25a370e3869e96a33ab, 8dd56fcb3196f466ecaffd445397cb11ef85f89f. Test: testrunner.py --host Change-Id: Ic8db128207c07588c7f11563208ae1e85c8b0e84 (cherry picked from commit 0b66d6174bf1f6023f9d36dda8538490b79c2e9f)
|
9042ae3c8db8a9f7b825c4702322d58e232619f4 |
|
13-Mar-2017 |
Vladimir Marko <vmarko@google.com> |
Revert "Hash-based DexCache field array." Reverting to allow rebasing the revert https://android-review.googlesource.com/351689 without too many conflicts. Bug: 30627598 This reverts commit 1aea3510b8dd0c512cec61c91c5ef1f1e5d53d64. Change-Id: I4af65e9f41c8bad8106c028947eca7c5a9534c53 (cherry picked from commit 6374c58f2ea403b3a05fb27376110fe4d0fc8e3f)
|
2f555967e54549d26ee74bd0303f8be5155f2e08 |
|
13-Mar-2017 |
Vladimir Marko <vmarko@google.com> |
Revert^5 "Hash-based dex cache type array." For app images, ImageWriter does not add boot image classes to the app image class table even though it keeps them in the dex caches. The reason for that is unknown, the code looks OK. Bug: 34839984 Bug: 30627598 Bug: 34659969 Also reverts "Improve debugging output for a crash." This reverts commits bfb80d25eaeb7a604d5dd25a370e3869e96a33ab, 8dd56fcb3196f466ecaffd445397cb11ef85f89f. Test: testrunner.py --host Change-Id: Ic8db128207c07588c7f11563208ae1e85c8b0e84 (cherry picked from commit 0b66d6174bf1f6023f9d36dda8538490b79c2e9f)
|
0b66d6174bf1f6023f9d36dda8538490b79c2e9f |
|
13-Mar-2017 |
Vladimir Marko <vmarko@google.com> |
Revert^5 "Hash-based dex cache type array." For app images, ImageWriter does not add boot image classes to the app image class table even though it keeps them in the dex caches. The reason for that is unknown, the code looks OK. Bug: 34839984 Bug: 30627598 Bug: 34659969 Also reverts "Improve debugging output for a crash." This reverts commits bfb80d25eaeb7a604d5dd25a370e3869e96a33ab, 8dd56fcb3196f466ecaffd445397cb11ef85f89f. Test: testrunner.py --host Change-Id: Ic8db128207c07588c7f11563208ae1e85c8b0e84
|
6374c58f2ea403b3a05fb27376110fe4d0fc8e3f |
|
13-Mar-2017 |
Vladimir Marko <vmarko@google.com> |
Revert "Hash-based DexCache field array." Reverting to allow rebasing the revert https://android-review.googlesource.com/351689 without too many conflicts. Bug: 30627598 This reverts commit 1aea3510b8dd0c512cec61c91c5ef1f1e5d53d64. Change-Id: I4af65e9f41c8bad8106c028947eca7c5a9534c53
|
1aea3510b8dd0c512cec61c91c5ef1f1e5d53d64 |
|
08-Dec-2016 |
Vladimir Marko <vmarko@google.com> |
Hash-based DexCache field array. Test: m test-art-host, both AOT and interpreter Test: m test-art-target, both AOT and interpreter Test: m valgrind-test-art-host Bug: 30627598 Change-Id: If992f091aadd862d17b09928d21659573dd285a0
|
bfb80d25eaeb7a604d5dd25a370e3869e96a33ab |
|
14-Feb-2017 |
Vladimir Marko <vmarko@google.com> |
Revert^4 "Hash-based dex cache type array." Added extra output to the abort message to collect more data when we hit the crash. Added extra check when loading an app image to verify that the class table isn't already broken. Test: testrunner.py --host Bug: 34839984 Bug: 30627598 Bug: 34659969 This reverts commit 5812e20ff7cbc8efa0b8d7486ada2f58840a6ad5. Change-Id: I9bb442a184c236dcb75b3e42a095f39cd6bee59d
|
c069a30d42aefd902c20e8bc09dfad1683f07ded |
|
18-Jan-2017 |
Orion Hodson <oth@google.com> |
ART: invoke-custom support Adds invoke-custom instruction to the interpreter. Bug: 33191717,30550796 Test: art/test/run-test --host 952 Change-Id: I3b754128649a8b3a00ade79ba2518d0e377f3a1e
|
5812e20ff7cbc8efa0b8d7486ada2f58840a6ad5 |
|
14-Feb-2017 |
Mathieu Chartier <mathieuc@google.com> |
Revert^3 "Hash-based dex cache type array." Assert failing for "earchbox:search": F zygote64: class_linker.cc:4612] Check failed: handle_scope_iface.Get() != nullptr Test: m test-art-host Bug: 34839984 Bug: 30627598 Bug: 34659969 This reverts commit 85c0f2ac03417f5125bc2ff1dab8109859c67d5c. Change-Id: I39846c20295af5875b0f945be7035c73ded23135
|
85c0f2ac03417f5125bc2ff1dab8109859c67d5c |
|
02-Feb-2017 |
Vladimir Marko <vmarko@google.com> |
Revert^2 "Hash-based dex cache type array." The reason for the revert was fixed by https://android-review.googlesource.com/332666 . We now enable clearing dex cache types in test 155 from that CL. Also avoid an unnecessary store in LookupResolvedTypes() and prevent verifier from messing up the dex cache types. Test: m test-art-host Bug: 34839984 Bug: 30627598 Bug: 34659969 This reverts commit d16363a93053de0f32252c7897d839a46aff14ae. Change-Id: Ie8603cfa772e78e648d005b0b6eae59062ae729d
|
e0a1c5e871d7b68bd7c0e9c4496b620577a97cf9 |
|
01-Feb-2017 |
Vladimir Marko <vmarko@google.com> |
Revert "Hash-based dex cache type array." Reverting to work around some programs crashing with Check failed: handle_scope_iface.Get() != nullptr. though the reason for the failure not yet understood. Test: m test-art-host Bug: 34839984 Bug: 30627598 Bug: 34659969 Bug: 30419309 This reverts commit ec7862283dd49f5a58d0ac45960ce27c2f7671b8. Change-Id: Ifded663633082f1e59e5b6ff2e026dc559bd6b82 (cherry picked from commit d16363a93053de0f32252c7897d839a46aff14ae)
|
80cd4004620fd1a672c2a550e9d71270feeabde9 |
|
01-Feb-2017 |
Vladimir Marko <vmarko@google.com> |
Revert "Hash-based dex cache type array." Reverting to work around some programs crashing with Check failed: handle_scope_iface.Get() != nullptr. though the reason for the failure not yet understood. Test: m test-art-host Bug: 34839984 Bug: 30627598 Bug: 34659969 Bug: 30419309 This reverts commit ec7862283dd49f5a58d0ac45960ce27c2f7671b8. Change-Id: Ifded663633082f1e59e5b6ff2e026dc559bd6b82 (cherry picked from commit d16363a93053de0f32252c7897d839a46aff14ae)
|
d16363a93053de0f32252c7897d839a46aff14ae |
|
01-Feb-2017 |
Vladimir Marko <vmarko@google.com> |
Revert "Hash-based dex cache type array." Reverting to work around some programs crashing with Check failed: handle_scope_iface.Get() != nullptr. though the reason for the failure not yet understood. Test: m test-art-host Bug: 34839984 Bug: 30627598 Bug: 34659969 Bug: 30419309 This reverts commit ec7862283dd49f5a58d0ac45960ce27c2f7671b8. Change-Id: Ifded663633082f1e59e5b6ff2e026dc559bd6b82
|
ec7862283dd49f5a58d0ac45960ce27c2f7671b8 |
|
20-Dec-2016 |
Vladimir Marko <vmarko@google.com> |
Hash-based dex cache type array. Test: m test-art-host (Interpreter, Optimizing, JIT) Test: m test-art-target on Nexus 6P (Interpreter, Optimizing, JIT) Test: Nexus 6P boots Test: m valgrind-test-art-host Bug: 30627598 Bug: 34659969 Bug: 30419309 Change-Id: Ic00eda89e58088a3573fc9ec0ad04c0e69e161d1
|
db70ce5e788404f36cb5dbb137c6a8f79f34a2a0 |
|
12-Dec-2016 |
Mathieu Chartier <mathieuc@google.com> |
Address some review comments Addressed comments in dex cache and class table. Added class table test. Test: mm test-art-host-gtest-class_table_test -j20 Change-Id: I3ec0282247187acb1ec7af25b309501f001a1c3e
|
5df32d376713499722c5cf17d7d94543295953dc |
|
07-Dec-2016 |
Mathieu Chartier <mathieuc@google.com> |
Use store release for resolved types For DefineClass, use a release store for SetResolvedType. This is done to prevent other threads from seeing a class but not necessarily seeing the loaded members like the static fields array. It is theorized that a load acquire is not required since obtaining the resolved class will always have an address depedency or a lock. Bug: 32075261 Test: test-art-host Change-Id: I8ab18edc2cc7c9eb4a30897903d5cf1c7f9eb24e
|
8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5 |
|
28-Nov-2016 |
Andreas Gampe <agampe@google.com> |
ART: Add dex::StringIndex Add abstraction for uint32_t string index. Test: m test-art-host Change-Id: I917c2881702fe3df112c713f06980f2278ced7ed
|
a5b09a67034e57a6e10231dd4bd92f4cb50b824c |
|
18-Nov-2016 |
Andreas Gampe <agampe@google.com> |
ART: Add dex::TypeIndex Add abstraction for uint16_t type index. Test: m test-art-host Change-Id: I47708741c7c579cbbe59ab723c1e31c5fe71f83a
|
6b4c28734f138a991b34e3292bfe64e729bd081c |
|
01-Nov-2016 |
Mathieu Chartier <mathieuc@google.com> |
Fix read barriers in VisitDexCachePairs It was ignoring kReadBarrierOption and marking through the read barrier. Bug: 12687968 Test: test-art-host CC Change-Id: I5506acb5efb4b46be115ac899640522683898b47
|
d08e39b6f02368aaa668b5aae6b6077b3eb44d9c |
|
19-Oct-2016 |
Narayan Kamath <narayan@google.com> |
DexCache: Add support for updating MethodType references during GC. Fixes flakiness in 956-methodhandles Test: make test-art-host bug: 30550796 Change-Id: Ia5359390d59e65fc6efc16cc55c11bc65029104d
|
bc5a795c0d486c84913d987cad5846ded840cea6 |
|
18-Oct-2016 |
Mathieu Chartier <mathieuc@google.com> |
Move art/native to ObjPtr Bug: 31113334 Test: test-art-host Change-Id: I67eb89cf042c762c6dcd5eb8b008b9a28e9b3319
|
31e88225b2ef68e7f32f11186acf922c74ddabab |
|
15-Oct-2016 |
Mathieu Chartier <mathieuc@google.com> |
Move most mirror:: args to ObjPtr Fixed possible moving GC bugs in ClinitImageUpdate class. Bug: 31113334 Test: test-art-host Change-Id: I0bf6578553d58b944aaa17665f1350bdf5ed15ec
|
7fe56583220d813980f2241e0df13f5aa6627611 |
|
14-Oct-2016 |
Narayan Kamath <narayan@google.com> |
Fix handling of dex cache arrays for method types. - Add support for relocating method type dex cache arrays. - Add missing call to MethodTypeDexCachePair::Initialize in the class_linker. - Fix alignment calculation for method_types in DexCacheArraysLayout. - Removed unused MethodTypeOffset(uint32_t) method. Fixes tests with --pic. Test: make test-art-host Bug: 30550796 Change-Id: I2bba7228762b9e9834e7659fe62090be78afdfa8
|
23136d1dd1f7c939ebccf22dbb3bf1fcb0ce303a |
|
30-Sep-2016 |
Narayan Kamath <narayan@google.com> |
DexCachePair : Add an Assign method. This prevents the logic for determining a slot from the type ID from being scattered all over the place. Bug: 30550796 Test: make test-art-host Change-Id: I4ad6db8b730dc617fa8474a71c3794963b58279b
|
42b3dd0f94d2da0ec5f42c4cb57eef71dde02c79 |
|
03-Oct-2016 |
Narayan Kamath <narayan@google.com> |
Address review comments for change 25352fc06c84cdab8a2ab. Test: make test-art-host Bug: 30550796 Change-Id: Ic689e4c9bee691f03703288c3b12634a26841140
|
25352fc06c84cdab8a2ab6d173b0514066ade2b9 |
|
03-Aug-2016 |
Narayan Kamath <narayan@google.com> |
class_linker: Add support for resolving method types. - Add a new fixed size dex cache array for resolved method types. The size of this array is set to 1024. - Also introduces a new runtime flag that controls this feature. Test: make test-art-host Bug: 30550796 Change-Id: I147b33398d71ee21f2e91b418d3700d4630801ff
|
5f926055cb88089d8ca27243f35a9dfd89d981f0 |
|
30-Sep-2016 |
Vladimir Marko <vmarko@google.com> |
Revert "Store resolved Strings for AOT code in .bss." There are some issues with oat_test64 on host and aosp_mips-eng. Also reverts "compiler_driver: Fix build." Bug: 20323084 Bug: 30627598 This reverts commit 63dccbbefef3014c99c22748d18befcc7bcb3b41. This reverts commit 04a44135ace10123f059373691594ae0f270a8a4. Change-Id: I568ba3e58cf103987fdd63c8a21521010a9f27c4
|
c38a6f8e8d18b85113d1a585235e997779583c80 |
|
29-Sep-2016 |
Narayan Kamath <narayan@google.com> |
dex_cache: rewrite StringDexCachePair as DexCachePair<T> .. with [T = mirror::String]. This is in preparation for introducing a dex cache array for MethodTypes, which will be treated the same way. Test: make test-art-host bug: 30550796 Change-Id: Ief4455b4c6e4c9dd897f2c40b14b843a57b1dc8e
|
63dccbbefef3014c99c22748d18befcc7bcb3b41 |
|
21-Sep-2016 |
Vladimir Marko <vmarko@google.com> |
Store resolved Strings for AOT code in .bss. And do some related refactorings. Bug: 20323084 Bug: 30627598 Test: Run ART test suite including gcstress on host and Nexus 9. Test: Run ART test suite including gcstress with baker CC on host and Nexus 9. Test: Build aosp_mips64-eng. Change-Id: I1b12c1570fee8e5da490b47f231050142afcbd1e
|
bb816d66aabb9c2a2e095517d2013041116332db |
|
07-Sep-2016 |
Mathieu Chartier <mathieuc@google.com> |
Add transactions for string resolve Fixes a bug where resolved strings can be left in the dex cache after a transaction is rolled back even though the interned string was removed. Added test in transaction_test. Bug: 31239436 Test: test-art-host Change-Id: I42c67bcefeae8db134cde34c480261f52db4102e
|
bf44e0e5281de91f2e38a9378b94ef8c50ad9b23 |
|
18-Aug-2016 |
Christina Wadsworth <cwadsworth@google.com> |
ART: Implement a fixed size string dex cache Previously, the string dex cache was dex_file->NumStringIds() size, and @ruhler found that only ~1% of that cache was ever getting filled. Since many of these string dex caches were previously 100,000+ indices in length, we're wasting a few hundred KB per app by storing null pointers. The intent of this project was to reduce the space the string dex cache is using, while not regressing on time that much. This is the first of a few CLs, which implements the new fixed size array and disables the compiled code so it always goes slow path. In four other CLs, I implemented a "medium path" that regresses from the previous "fast path" only a bit in assembly in the entrypoints. @vmarko will introduce new compiled code in the future so that we ultimately won't be regressing on time at all. Overall, space savings have been confirmed as on the order of 100 KB per application. A 4-5% slow down in art-opt on Golem, and no noticeable slow down in the interpreter. The opt slow down should be diminished once the new compiled code is introduced. Test: m test-art-host Bug: 20323084 Change-Id: Ic654a1fb9c1ae127dde59290bf36a23edb55ca8e
|
542451cc546779f5c67840e105c51205a1b0a8fd |
|
26-Jul-2016 |
Andreas Gampe <agampe@google.com> |
ART: Convert pointer size to enum Move away from size_t to dedicated enum (class). Bug: 30373134 Bug: 30419309 Test: m test-art-host Change-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269
|
206fbf51ccd2dbbcf106e480cc6c5bb96fc7befb |
|
10-Jun-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Remove too aggressive DCHECKs. A class can move from a state greater or equal than resolved to erroneous concurrently to the verifier or the compiler. bug:29239283 Change-Id: I89f3fe1c1d9556c6c99b8e005b3ec02de7f01b85 (cherry picked from commit f7d994622aabcc689f62253a9253e0c67d9e787e)
|
f7d994622aabcc689f62253a9253e0c67d9e787e |
|
10-Jun-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Remove too aggressive DCHECKs. A class can move from a state greater or equal than resolved to erroneous concurrently to the verifier or the compiler. bug:29239283 Change-Id: I89f3fe1c1d9556c6c99b8e005b3ec02de7f01b85
|
d0668f2071610b9390779550ba926c81d53bd7a0 |
|
26-Apr-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Put boot class loader classes and strings in dex cache of app images. The reason for b/28295348 was that an ArtMethod of the boot image was in the app image dex cache, but the declaring class of that boot image method was not. Since objects of boot images don't need fixups, the comparisons for FixupStrings and FixupResolvedTypes was always false for them. bug:28295348 (cherry picked from commit 1df3b55abea375671b79e3f4e6851be757a2d8a7) Change-Id: I257b68089878ac9ab9f6fc78f726f9fb322dd884
|
1df3b55abea375671b79e3f4e6851be757a2d8a7 |
|
26-Apr-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Put boot class loader classes and strings in dex cache of app images. The reason for b/28295348 was that an ArtMethod of the boot image was in the app image dex cache, but the declaring class of that boot image method was not. Since objects of boot images don't need fixups, the comparisons for FixupStrings and FixupResolvedTypes was always false for them. bug:28295348 Change-Id: Ida6d42c902692914c302b7fe3d003f73710de6e1
|
60bc39c8eb0e5d7328bf59a96e9eedfc6f0a4aeb |
|
28-Jan-2016 |
Mathieu Chartier <mathieuc@google.com> |
Remove some more read barriers in image relocation Bug: 26786304 Bug: 22858531 Change-Id: I70dacae7657ebf6dac2b3dad7726eebe5a2b2649
|
fbc31087932a65e036a153afab3049dc5298656a |
|
24-Jan-2016 |
Mathieu Chartier <mathieuc@google.com> |
Revert "Revert "Load app images"" This reverts commit 1bc977cf2f8199311a97f2ba9431a184540e3e9c. Bug: 22858531 Change-Id: Ide00bf3a73a02cba3bb364177204ad1b13f70295
|
1bc977cf2f8199311a97f2ba9431a184540e3e9c |
|
23-Jan-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Revert "Load app images" Fails when a method is duplicated (see test 097-duplicate-method) Bug: 22858531 This reverts commit f7fd970244f143b1abb956e29794c446e4d57f46. Change-Id: Ib30ae5be00cc568e799290be6b3c8f29cbbe4c20
|
f7fd970244f143b1abb956e29794c446e4d57f46 |
|
09-Nov-2015 |
Mathieu Chartier <mathieuc@google.com> |
Load app images Support in-place patching of the app image based on boot image location and app oat location. Only loads for art run test so far since we do not automatically generate app images for app installs. N5 maps launch time (~200 runs): Before: 930ms After: 878.18ms After + image class table: 864.57ms TODO: Oatdump support. Store class loaders as class roots in image. Bug: 22858531 Change-Id: I9cbc645645e62ea2ed1ad8e139e91af7d88514c1
|
4b00d3415beb7a816a3b5948f43f3b2e4b856ea8 |
|
13-Nov-2015 |
Mathieu Chartier <mathieuc@google.com> |
Refactor some patching logic Reduce duplication since app images in-place relocation will require this code also. Bug: 22858531 Change-Id: Ibb901b67267e27ef3bc2a0baff77189d4dcd018a
|
05792b98980741111b4d0a24d68cff2a8e070a3a |
|
03-Aug-2015 |
Vladimir Marko <vmarko@google.com> |
ART: Move DexCache arrays to native. This CL has a companion CL in libcore/ https://android-review.googlesource.com/162985 Change-Id: Icbc9e20ad1b565e603195b12714762bb446515fa
|
3d21bdf8894e780d349c481e5c9e29fe1556051c |
|
22-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move mirror::ArtMethod to native Optimizing + quick tests are passing, devices boot. TODO: Test and fix bugs in mips64. Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS. Some of the savings are from removal of virtual methods and direct methods object arrays. Bug: 19264997 (cherry picked from commit e401d146407d61eeb99f8d6176b2ac13c4df1e33) Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d Fix some ArtMethod related bugs Added root visiting for runtime methods, not currently required since the GcRoots in these methods are null. Added missing GetInterfaceMethodIfProxy in GetMethodLine, fixes --trace run-tests 005, 044. Fixed optimizing compiler bug where we used a normal stack location instead of double on ARM64, this fixes the debuggable tests. TODO: Fix JDWP tests. Bug: 19264997 Change-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3 ART: Fix casts for 64-bit pointers on 32-bit compiler. Bug: 19264997 Change-Id: Ief45cdd4bae5a43fc8bfdfa7cf744e2c57529457 Fix JDWP tests after ArtMethod change Fixes Throwable::GetStackDepth for exception event detection after internal stack trace representation change. Adds missing ArtMethod::GetInterfaceMethodIfProxy call in case of proxy method. Bug: 19264997 Change-Id: I363e293796848c3ec491c963813f62d868da44d2 Fix accidental IMT and root marking regression Was always using the conflict trampoline. Also included fix for regression in GC time caused by extra roots. Most of the regression was IMT. Fixed bug in DumpGcPerformanceInfo where we would get SIGABRT due to detached thread. EvaluateAndApplyChanges: From ~2500 -> ~1980 GC time: 8.2s -> 7.2s due to 1s less of MarkConcurrentRoots Bug: 19264997 Change-Id: I4333e80a8268c2ed1284f87f25b9f113d4f2c7e0 Fix bogus image test assert Previously we were comparing the size of the non moving space to size of the image file. Now we properly compare the size of the image space against the size of the image file. Bug: 19264997 Change-Id: I7359f1f73ae3df60c5147245935a24431c04808a [MIPS64] Fix art_quick_invoke_stub argument offsets. ArtMethod reference's size got bigger, so we need to move other args and leave enough space for ArtMethod* and 'this' pointer. This fixes mips64 boot. Bug: 19264997 Change-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab
|
e401d146407d61eeb99f8d6176b2ac13c4df1e33 |
|
22-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move mirror::ArtMethod to native Optimizing + quick tests are passing, devices boot. TODO: Test and fix bugs in mips64. Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS. Some of the savings are from removal of virtual methods and direct methods object arrays. Bug: 19264997 Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d
|
f39c9eb7f85de1c4ddd50ab9ca0e095e62ce2518 |
|
26-May-2015 |
Roland Levillain <rpl@google.com> |
Fix a few literals and assertions. Change-Id: I0a1e9db607ec7325e17568b034ba90e68d2298f9
|
c785344b87221f5e4e6473e5b762e4e61fe65dcf |
|
27-Mar-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move ArtField to native Add linear alloc. Moved ArtField to be native object. Changed image writer to put ArtFields after the mirror section. Savings: 2MB on low ram devices 4MB on normal devices Total PSS measurements before (normal N5, 95s after shell start): Image size: 7729152 bytes 23112 kB: .NonMoving 23212 kB: .NonMoving 22868 kB: .NonMoving 23072 kB: .NonMoving 22836 kB: .NonMoving 19618 kB: .Zygote 19850 kB: .Zygote 19623 kB: .Zygote 19924 kB: .Zygote 19612 kB: .Zygote Avg: 42745.4 kB After: Image size: 7462912 bytes 17440 kB: .NonMoving 16776 kB: .NonMoving 16804 kB: .NonMoving 17812 kB: .NonMoving 16820 kB: .NonMoving 18788 kB: .Zygote 18856 kB: .Zygote 19064 kB: .Zygote 18841 kB: .Zygote 18629 kB: .Zygote 3499 kB: .LinearAlloc 3408 kB: .LinearAlloc 3424 kB: .LinearAlloc 3600 kB: .LinearAlloc 3436 kB: .LinearAlloc Avg: 39439.4 kB No reflection performance changes. Bug: 19264997 Bug: 17643507 Change-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c
|
c136312832d4be25db2ecc5673967d71d0ad4b9c |
|
09-Apr-2015 |
Vladimir Marko <vmarko@google.com> |
Avoid using dex cache array pointers in libart. In preparation for making dex cache arrays native, avoid using them in Java code. This causes a performance regression for our reflection benchmarks. Class_getDeclaredMethod and Class_getMethod take an up to 30% hit, measured using the Quick compiler. We accept this hit at this stage and we will tune the performance after we're done with the larger effort. Companion libcore/ change: https://android-review.googlesource.com/146069 Bug: 20134538 Change-Id: Ibbef3b50043a1311cd40723ed42e1f1c609b8fc1
|
37f05ef45e0393de812d51261dc293240c17294d |
|
17-Jul-2014 |
Fred Shih <ffred@google.com> |
Reduced memory usage of primitive fields smaller than 4-bytes Reduced memory used by byte and boolean fields from 4 bytes down to a single byte and shorts and chars down to two bytes. Fields are now arranged as Reference followed by decreasing component sizes, with fields shuffled forward as needed. Bug: 8135266 Change-Id: I65eaf31ed27e5bd5ba0c7d4606454b720b074752
|
b99b8d6cffe08d8c9d30175c936e5c88d3101802 |
|
31-Jul-2014 |
Andreas Gampe <agampe@google.com> |
ART: Fix verifier mishandling erroneous array component types The verifier must not assume that component types are not erroneous. Bug: 16661259 (cherry picked from commit aa910d5ef43256102809e397de305c23f1c315e6) Change-Id: I6d607310593ac337616581bfdff5eb29a8dd1b9d
|
aa910d5ef43256102809e397de305c23f1c315e6 |
|
31-Jul-2014 |
Andreas Gampe <agampe@google.com> |
ART: Fix verifier mishandling erroneous array component types The verifier must not assume that component types are not erroneous. Bug: 16661259 Change-Id: I23b2f517259ca9c0b8a1aa38f6348fcd61e0b22e
|
98d1cc8033251c93786e2fa8c59a2e555a9493be |
|
16-May-2014 |
Mingyao Yang <mingyao@google.com> |
Improve performance of invokevirtual/invokeinterface with embedded imt/vtable Add an embedded version of imt/vtable into class object. Both tables start at fixed offset within class object so method/entry point can be loaded directly from class object for invokeinterface/invokevirtual. Bug: 8142917 Change-Id: I4240d58cfbe9250107c95c0708c036854c455968
|
bc56fc3242ea2fad6630abdee1657f444eee8d30 |
|
04-Jun-2014 |
Mathieu Chartier <mathieuc@google.com> |
Fix compiler warnings. Added GetReference, GetHandle to StackHandleScope to prevent the compiler from optimizing away these loads/stores from inline functions. Change-Id: I4db02dd3194665d844292e74e3a7d7c80e730e06
|
ef7d42fca18c16fbaf103822ad16f23246e2905d |
|
06-Jan-2014 |
Ian Rogers <irogers@google.com> |
Object model changes to support 64bit. Modify mirror objects so that references between them use an ObjectReference value type rather than an Object* so that functionality to compress larger references can be captured in the ObjectRefererence implementation. ObjectReferences are 32bit and all other aspects of object layout remain as they are currently. Expand fields in objects holding pointers so they can hold 64bit pointers. Its expected the size of these will come down by improving where we hold compiler meta-data. Stub out x86_64 architecture specific runtime implementation. Modify OutputStream so that reads and writes are of unsigned quantities. Make the use of portable or quick code more explicit. Templatize AtomicInteger to support more than just int32_t as a type. Add missing, and fix issues relating to, missing annotalysis information on the mutator lock. Refactor and share implementations for array copy between System and uses elsewhere in the runtime. Fix numerous 64bit build issues. Change-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822
|
ea46f950e7a51585db293cd7f047de190a482414 |
|
30-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Refactor java.lang.reflect implementation Cherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1. Move to ArtMethod/Field instead of AbstractMethod/Field and have java.lang.reflect APIs delegate to ArtMethod/ArtField. Bug: 10014286. Change-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7
|
fc0e3219edc9a5bf81b166e82fd5db2796eb6a0d |
|
17-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Fix multiple inclusion guards to match new pathnames Change-Id: Id7735be1d75bc315733b1773fba45c1deb8ace43
|
7940e44f4517de5e2634a7e07d58d0fb26160513 |
|
12-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Create separate Android.mk for main build targets The runtime, compiler, dex2oat, and oatdump now are in seperate trees to prevent dependency creep. They can now be individually built without rebuilding the rest of the art projects. dalvikvm and jdwpspy were already this way. Builds in the art directory should behave as before, building everything including tests. Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81
|