OSDN Git Service
Mathieu Chartier [Sat, 4 Mar 2017 02:02:18 +0000 (18:02 -0800)]
Add GC critical section to GetObjectsAllocated
Prevent GC running during GetObjectsAllocated since we may get a
checkpoint request that tells us to suspend while we are doing
SuspendAll. This can cause a deadlock.
Bug:
35232978
Test: test-art-host
Change-Id: I9c02415df0a0b9fa787d7ce449ec06a40dfaf624
Treehugger Robot [Fri, 3 Mar 2017 22:47:20 +0000 (22:47 +0000)]
Merge "Extend profman to generate profiles with inline caches"
Treehugger Robot [Fri, 3 Mar 2017 22:33:18 +0000 (22:33 +0000)]
Merge "Fix OUT_DIR usage"
Calin Juravle [Tue, 14 Feb 2017 03:03:47 +0000 (19:03 -0800)]
Extend profman to generate profiles with inline caches
Extend profman logic to generate profiles based on a simple textual
respresentation. This will help writing tests for profile guided
compilation.
Before this CL, profman was able to generate profiles based on a list of
classes like:
java.lang.Comparable
java.lang.Math
java.lang.Object
This CL, enables profman to understand methods and classes alike. The
new format is:
# Classes
Ljava/lang/Comparable;
Ljava/lang/Math;
# Methods with inline caches
LTestInline;->inlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;
LTestInline;->noInlineCache(LSuper;)I
"LTestInline;->inlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;"
means that method `int inlineMonomorphicSubA(Super)` from class Main
will be added to the profile with the inline cache (SubA,SubB) for its
one and only invoke virtual.
@Main#noInlineCache:(LSuper;)I+;
meaning that method `int noInlineCache' from class Main will be added
to the profile with no inline cache.
Note that the methods are allowed to have a single invoke virtual in
their dex bytecode. That is to keep the parsing the file format
simple and easy to use.
Also, add a few more tests for profiles and fix an issue caused by
writing the dex files in a possibly wrong order.
Test: m run-test-host-gtest-profile_assistant_test
Bug:
32434870
Change-Id: I6b7340cf613007117d9818be206ccb3a27b815bf
Mathieu Chartier [Fri, 3 Mar 2017 20:52:33 +0000 (20:52 +0000)]
Merge "Fix dex location filtering in dex2oat"
Mathieu Chartier [Thu, 2 Mar 2017 01:16:22 +0000 (17:16 -0800)]
Fix dex location filtering in dex2oat
Previously we were filtering dex location against profile keys,
this meant qualified ones like /system/.../app.apk would not match
the profile key app.apk in the profile. This CL fixes changes the
behavior to filter based on the profile key of the dex file location.
Fixed OatWriter checksum for raw data case (also found by regression
test).
Added missing FlushCloseOutputFiles to CompileImage causing DCHECK
failures for File destructor.
All the fixes are regression tested by dex2oat_test.
Test: test-art-host-gtest-dex2oat_test
Bug:
34929159
Bug:
35761072
Change-Id: I1bdc949bd644bfab1c8fea0b737a132b487a653b
Dan Willemsen [Fri, 3 Mar 2017 20:35:30 +0000 (12:35 -0800)]
Fix OUT_DIR usage
OUT_DIR is not guaranteed to end with a /
Test: m -j test-art-host-run-test ART_TEST_RUN_TEST_NO_RELOCATE=true
Change-Id: Ic11f4be106b3c67eb22f442f7afaea92bcf46817
Treehugger Robot [Fri, 3 Mar 2017 18:55:46 +0000 (18:55 +0000)]
Merge "Clean up ZygoteHooks stack walking slightly."
Treehugger Robot [Fri, 3 Mar 2017 18:36:10 +0000 (18:36 +0000)]
Merge "Misc cleanup for class redefinition."
Treehugger Robot [Fri, 3 Mar 2017 18:25:32 +0000 (18:25 +0000)]
Merge changes I5be41da8,Ifa4aac02
* changes:
ART: Resolve <clinit> strings in compiler driver
ART: Resolve static field strings in compiler driver
Treehugger Robot [Fri, 3 Mar 2017 18:01:46 +0000 (18:01 +0000)]
Merge "Add nullptr and size check for opening a mem mapped dex file."
Roland Levillain [Fri, 3 Mar 2017 17:38:59 +0000 (17:38 +0000)]
Merge "Increase ulimit on host to fix test 103-string-append with art-debug-gc."
Andreas Gampe [Fri, 3 Mar 2017 00:41:35 +0000 (16:41 -0800)]
ART: Resolve <clinit> strings in compiler driver
Resolve strings for <clinit> in classes that fail initialization.
This will move the data from the zygote heap into the image heap,
creating clean memory.
Increases the image size by XXX. However, at the same time decreases
the zygote heap by the same amount.
Bug:
34956610
Test: m
Test: m test-art-host
Test: Device boots
Change-Id: I5be41da8424d5de65c02a2aed1ac4d6113741876
Alex Light [Thu, 2 Mar 2017 00:57:08 +0000 (16:57 -0800)]
Misc cleanup for class redefinition.
Added an iterator to access the RedefinitionData through and replaced
some code with scopes.
Bug:
31455788
Test: ./test/testrunner/testrunner.py --host -j40
Change-Id: Id7a381ac2b942b47d67619cd1da11858f8c9b41b
Andreas Gampe [Thu, 2 Mar 2017 21:50:36 +0000 (13:50 -0800)]
ART: Resolve static field strings in compiler driver
Resolved strings for static final fields in classes that fail
initialization. This will move the data from the zygote heap into
the image heap, creating clean memory.
Increases the image size by ~100K. However, at the same time decreases
the zygote heap by the same amount.
Bug:
34956610
Test: m
Test: m test-art-host
Test: Device boots
Change-Id: Ifa4aac0209f2364488b164b04daa9539821bc12b
Alex Light [Wed, 1 Mar 2017 17:00:28 +0000 (09:00 -0800)]
Clean up ZygoteHooks stack walking slightly.
Test: Build and run marlin with libartd.so
Change-Id: I4a67935c5c7270636085c3ee12db0ebc1798a89e
Roland Levillain [Fri, 3 Mar 2017 15:39:51 +0000 (15:39 +0000)]
Increase ulimit on host to fix test 103-string-append with art-debug-gc.
Strace is turned on by default on the art-debug-gc configuration, and
was going over the file size limit for this test on host (x86).
Test: Run ART run-test 103-string-append on art-debug-gc configuration.
Change-Id: I5cf28f054468babcf4d9b614b8e64b365a5691c5
Roland Levillain [Fri, 3 Mar 2017 12:30:17 +0000 (12:30 +0000)]
Merge "Fix date on devices in setup-buildbot-device.sh."
Richard Uhler [Fri, 3 Mar 2017 08:52:23 +0000 (08:52 +0000)]
Merge "Clean up OatFileAssistant getting of image info."
Jeff Hao [Fri, 3 Mar 2017 00:36:31 +0000 (16:36 -0800)]
Add nullptr and size check for opening a mem mapped dex file.
The bug has an apk with 0 size classes.dex. When dex2oat tries to open
the file for layout, it crashes. This adds checks to ensure that the mem
map isn't null and has a sane size before opening it as a dex file.
Bug:
35892406
Test: mm test-art-host
Change-Id: I5f6b5a1e7bbccf4fe3483b68023d51436eb71805
Treehugger Robot [Fri, 3 Mar 2017 02:35:14 +0000 (02:35 +0000)]
Merge "Clear empty unevac regions in ClearFromSpace"
Treehugger Robot [Fri, 3 Mar 2017 01:56:38 +0000 (01:56 +0000)]
Merge "Fix dexlayout manual walking of 0 length catch handler."
Mathieu Chartier [Tue, 28 Feb 2017 00:37:21 +0000 (16:37 -0800)]
Clear empty unevac regions in ClearFromSpace
The motivation is to release RAM for empty unevac regions at the end
of the current GC instead of next GC.
Results on RitzPerf:
This optimization accounts for 2.33GB out of 53GB of freed bytes ~4%.
This also means that the average heap size is probably 4% smaller,
though it may not translate to RAM savings for actual apps.
Bug:
35800768
Bug:
12687968
Test: test-art-host
Change-Id: I38fa8dcda1aa6b439060ff170941b3a53022846f
Mathieu Chartier [Thu, 2 Mar 2017 23:08:08 +0000 (23:08 +0000)]
Merge "Don't fail for null dex elements in FlattenPathClassLoader"
Mathieu Chartier [Thu, 2 Mar 2017 21:35:14 +0000 (21:35 +0000)]
Merge "Add missing FlushCloseOutputFiles to CompileImage"
Mathieu Chartier [Thu, 2 Mar 2017 20:02:13 +0000 (12:02 -0800)]
Don't fail for null dex elements in FlattenPathClassLoader
Dex elements can be null for resource jars that do not contain any
dex files. This enables loading app images for the system server.
Bug:
34929159
Test: test-art-host
Change-Id: Iec663f8e19c9099e12902c9959b3a0ae32bb2ea7
Mathieu Chartier [Thu, 2 Mar 2017 20:57:01 +0000 (20:57 +0000)]
Merge "Increase gcloop threshold to 15"
Mathieu Chartier [Thu, 2 Mar 2017 20:00:31 +0000 (20:00 +0000)]
Merge "Fixed OatWriter checksum for raw data case"
Jeff Hao [Thu, 2 Mar 2017 18:59:43 +0000 (10:59 -0800)]
Fix dexlayout manual walking of 0 length catch handler.
This fails for 0 length handlers that are unreferenced by any try
blocks. Unreferenced handlers are handled differently and walked
manually, and there was an error in the 0 size case, when there is only
a single catch all handler.
Bug:
35874292
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: Ie061b4fd0e7e8be7e3e382b11d2606f5ffc0817a
Treehugger Robot [Thu, 2 Mar 2017 18:47:55 +0000 (18:47 +0000)]
Merge "Add dexlayout test where class data section precedes code items."
Mathieu Chartier [Thu, 2 Mar 2017 18:43:07 +0000 (10:43 -0800)]
Increase gcloop threshold to 15
12 seems to be flaky for the JIT configuration.
Bug:
35917229
Test: test-art-host
Change-Id: Ia3bcd542d58f1dce16d2bc21cbee9f5d2650035f
Mathieu Chartier [Thu, 2 Mar 2017 18:14:08 +0000 (10:14 -0800)]
Add missing FlushCloseOutputFiles to CompileImage
Was causing DCHECK failure for gtest that generate app image. Test
is in followup CL.
Test: clean-oat-host && test-art-host
Bug:
34929159
Change-Id: Ie5db008a71a6313ff7dc749f7cc1ac21255efdd7
Mathieu Chartier [Thu, 2 Mar 2017 17:49:03 +0000 (09:49 -0800)]
Fixed OatWriter checksum for raw data case
The checksum from the dex file seems to be incorrect, use the one
from the OatDexFile since it matches the original dex checksum.
Regression test in follow up CL.
Test: test-art-host-gtest -j32
Bug:
35761072
Change-Id: I79f0e720c9a2fc33286c4d4c1ef4ab9d194533a9
Aart Bik [Thu, 2 Mar 2017 17:07:01 +0000 (17:07 +0000)]
Merge "New utilities for induction variables."
Richard Uhler [Wed, 22 Feb 2017 11:37:41 +0000 (11:37 +0000)]
Clean up OatFileAssistant getting of image info.
* ImageInfo.oat_checksum is no longer unused.
* Don't abort if we can't read secondary isa images.
Test: m art-test-host
Bug:
34385298
Bug:
34800919
Change-Id: I4d1ad4e2435cc62d38cd7143bc71313e319e952d
Richard Uhler [Thu, 2 Mar 2017 09:18:16 +0000 (09:18 +0000)]
Merge "Don't include patch information when generating images."
Mathieu Chartier [Thu, 2 Mar 2017 01:16:16 +0000 (01:16 +0000)]
Merge "Add regression test for vdex + layout combination"
Jeff Hao [Thu, 2 Mar 2017 00:44:50 +0000 (16:44 -0800)]
Add dexlayout test where class data section precedes code items.
Bug:
35855748
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: I8365cb5699014d04dd7561758255802d811d58c6
Mathieu Chartier [Wed, 1 Mar 2017 23:20:30 +0000 (15:20 -0800)]
Add regression test for vdex + layout combination
Test compiling with vdex + layout.
Test failure example:
dex2oatd F 03-01 15:19:22 68522 68522 oat_writer.cc:2269] Check failed: oat_dex_file->source_.IsRawFile()
Bug:
35761072
Test: test-art-host-gtest-dex2oat_test
Change-Id: Ieefda4b2992cfc4eaf77c7c61062e825e3c5456f
Treehugger Robot [Wed, 1 Mar 2017 22:04:53 +0000 (22:04 +0000)]
Merge "Prevent dexlayout from moving code items if preceded by class data."
Treehugger Robot [Wed, 1 Mar 2017 21:04:00 +0000 (21:04 +0000)]
Merge "Handle RawData case for DexLayout"
Jeff Hao [Wed, 1 Mar 2017 20:18:19 +0000 (12:18 -0800)]
Prevent dexlayout from moving code items if preceded by class data.
Class data has uleb encoded offsets to the code item, and moving code
items will change the size of the class data, which would in turn affect
the code item offsets if they precede the code items.
For now, make it so that dexlayout does not move the code items at all
in this case. A better fix would be to swap the order of the sections in
dexlayout, but that can be done in a future CL.
Unit test to follow.
Bug:
35855748
Test: mm test-art-host
Change-Id: Ica6da1e5e951cf0003fc9793f13ad10b74004eb9
Mathieu Chartier [Wed, 1 Mar 2017 04:17:30 +0000 (20:17 -0800)]
Handle RawData case for DexLayout
For vdex, the RawData dex file source is used. This was not
compatible with the existing LayoutAndWriteDexFile code. Added
handling to support RawData sources.
Without the handing, it was incorrectly using GetRawFile and casting
the dex file header to a File* causing a bogus fd number.
Test: adb shell cmd package compile -a --reset
Test: adb shell cmd package compile -a -m speed-profile
Test: test-art-host
Bug:
35761072
Change-Id: I74bdd17295479058e9245d1defb132df40fff474
Aart Bik [Tue, 28 Feb 2017 22:41:55 +0000 (14:41 -0800)]
New utilities for induction variables.
Rationale:
Break-out CL of ART Vectorizer: 2 OF many.
The purpose is making the original CL smaller
and easier to review.
Bug:
34083438
Test: test-art-host
Change-Id: I46d297eba504af3850a5998ee279ea9f7b38bed8
Vladimir Marko [Wed, 1 Mar 2017 17:38:28 +0000 (17:38 +0000)]
Merge "MIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code"
Treehugger Robot [Wed, 1 Mar 2017 16:52:09 +0000 (16:52 +0000)]
Merge "ART: Add correct field index to reference visiting"
Roland Levillain [Wed, 1 Mar 2017 14:14:10 +0000 (14:14 +0000)]
Fix date on devices in setup-buildbot-device.sh.
Update date on device if the difference with host is more than one hour.
Test: Set a bogus date on device, then run setup-buildbot-device.sh.
Change-Id: I9f5a3acdf699c1d04c838c8b156f59bf0f2c5550
Roland Levillain [Wed, 1 Mar 2017 13:16:48 +0000 (13:16 +0000)]
Merge "MIPS: Implement heap poisoning in ART's Optimizing compiler."
Nicolas Geoffray [Wed, 1 Mar 2017 13:13:45 +0000 (13:13 +0000)]
Merge "Revert "Revert "Intrinsify Integer.valueOf."""
Nicolas Geoffray [Wed, 1 Mar 2017 12:31:01 +0000 (12:31 +0000)]
Merge "Update run-tests script/dependencies to use -testdex jars."
Nicolas Geoffray [Wed, 1 Mar 2017 10:03:08 +0000 (10:03 +0000)]
Update run-tests script/dependencies to use -testdex jars.
run-tests run with --no-image need the dex files in the
bootclasspath to be available. The -testdex jars are guaranteed
unstripped, so use them instead.
This was always broken, but vmarko@ just added a test that
forces --no-image.
bug:
24535627
Test: test-art-target
Change-Id: I391573cffd0749d814fd81517e99dfc8f0fd59d5
Nicolas Geoffray [Wed, 1 Mar 2017 11:01:41 +0000 (11:01 +0000)]
Revert "Revert "Intrinsify Integer.valueOf.""
Fix heap poisoning.
LOG INFO instead of ERROR to avoid run-test failures with --no-image.
bug:
30933338
Test: ART_HEAP_POISONING=true test-art-host test-art-target
This reverts commit
db7b44ac3ea80a722aaed12e913ebc1661a57998.
Change-Id: I0b7d4f1eb11c62c9a3df8e0de0b1a5d8af760181
Treehugger Robot [Wed, 1 Mar 2017 02:20:11 +0000 (02:20 +0000)]
Merge "Blacklist libcore tests relying on libjavacoretests."
Treehugger Robot [Wed, 1 Mar 2017 00:17:46 +0000 (00:17 +0000)]
Merge "Fix mutex issue"
Andreas Gampe [Tue, 28 Feb 2017 23:47:44 +0000 (15:47 -0800)]
ART: Add correct field index to reference visiting
Use the created infrastructure to report references with the right
field indices.
Bug:
31385354
Test: m test-art-host-run-test-906-iterate-heap
Test: m test-art-host-run-test-913-heaps
Change-Id: I4647ea1bfe83dbce80c2fcb13ed1658527921f14
Treehugger Robot [Tue, 28 Feb 2017 23:49:32 +0000 (23:49 +0000)]
Merge "ART: Add primitive field reporting"
Treehugger Robot [Tue, 28 Feb 2017 23:31:57 +0000 (23:31 +0000)]
Merge "Disable test 152 for gcstress"
Nicolas Geoffray [Tue, 28 Feb 2017 23:12:49 +0000 (23:12 +0000)]
Blacklist libcore tests relying on libjavacoretests.
The new linker behavior breaks them.
bug:
35417197
Change-Id: I914d385e386397fedf9b106797b3c06a898879f7
Alex Light [Tue, 28 Feb 2017 20:45:36 +0000 (12:45 -0800)]
Fix mutex issue
We were having some issues with mutex locking order related to
upgrading local to global references when recording non-debuggable
classes. We refactored this code so there is no longer this issue.
Bug:
35838746
Test: Build and boot a marlin with libartd.so
Change-Id: I093b433d921478307130c49a07d0c7ec34dd070d
Hiroshi Yamauchi [Tue, 28 Feb 2017 21:47:19 +0000 (21:47 +0000)]
Merge "Change the region space region size to 256k."
Mathieu Chartier [Tue, 28 Feb 2017 21:20:27 +0000 (13:20 -0800)]
Disable test 152 for gcstress
Bug:
35800768
Test: test-art-host-run-test ART_TEST_GC_STRESS=true
Change-Id: I6f5cdbb445b9cad6f57ffa5738c8c9e8ec3b9c98
Andreas Gampe [Sat, 25 Feb 2017 17:15:05 +0000 (09:15 -0800)]
ART: Add primitive field reporting
Add support for primitive_field_callback.
Bug:
31385354
Test: m test-art-host-run-test-906-iterate-heap
Test: m test-art-host-run-test-913-heaps
Change-Id: I4a700813ae11cc3ab49fd5738e0a2cce8a0002ba
Bill Buzbee [Tue, 28 Feb 2017 20:59:33 +0000 (20:59 +0000)]
Merge "ART/Mterp: eliminate unnecessary access checks"
Treehugger Robot [Tue, 28 Feb 2017 20:24:27 +0000 (20:24 +0000)]
Merge "Avoid visiting dead large objects in RegionSpace::Walk"
Treehugger Robot [Tue, 28 Feb 2017 19:47:16 +0000 (19:47 +0000)]
Merge "ART: Fix string reporting"
buzbee [Wed, 22 Feb 2017 21:40:59 +0000 (13:40 -0800)]
ART/Mterp: eliminate unnecessary access checks
This CL switches mterp from using the old quick entrypoints
for sget/sput to instead using an sget/sput access sequence
similar to that used by the reference interpreter. This
results in a reduction of unnecessary access checks.
Benchmarks: 3% improvement on DeltaBlue
Bug:
30933338
Test: ART_TEST_INTERPRETER=true m test-art-host
Change-Id: Ib4e64d72b511c6a9ed537289bfeb393eff42c70f
Mathieu Chartier [Tue, 28 Feb 2017 00:37:21 +0000 (16:37 -0800)]
Avoid visiting dead large objects in RegionSpace::Walk
The motivation is to prevent large objects from being visited by
RegionSpace::Walk if it is called before the next GC's SetFromSpace
marks the large object as from-space. This fixes possible dangling
pointer issues.
A follow up CL will clear the empty unevac regions.
Bug:
35800768
Bug:
12687968
Test: test-art-host
Change-Id: I6323959f0b7b2a357e6d6483cd1c33fb63c3d54a
Treehugger Robot [Tue, 28 Feb 2017 17:31:32 +0000 (17:31 +0000)]
Merge "Apply String.equals() optimizations on MIPS32 and MIPS64"
Richard Uhler [Tue, 28 Feb 2017 17:06:29 +0000 (17:06 +0000)]
Don't include patch information when generating images.
Because we always compile pic, patch information is not needed.
Test: test-art-host, test-art-target
Bug:
33192586
Change-Id: Iaa4750117ecc464850daa50c32f80546fe716039
Nicolas Geoffray [Tue, 28 Feb 2017 17:05:11 +0000 (17:05 +0000)]
Merge "Revert "Intrinsify Integer.valueOf.""
Nicolas Geoffray [Tue, 28 Feb 2017 17:04:50 +0000 (17:04 +0000)]
Revert "Intrinsify Integer.valueOf."
Heap poisoning missing
jit-gcstress not optimizing it.
bug:
30933338
This reverts commit
cd0b27287843cfd904dd163056322579ab4bbf27.
Change-Id: I5ece1818afbca5214babb6803f62614a649aedeb
Goran Jakovljevic [Tue, 28 Feb 2017 13:58:01 +0000 (14:58 +0100)]
MIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code
Test: booted MIPS32 and MIPS64 in QEMU
Change-Id: I413272c11ad00a0f77271302727b5860eaa7756b
Vladimir Marko [Tue, 28 Feb 2017 14:15:21 +0000 (14:15 +0000)]
Merge "Fix java.lang.Void.TYPE (void.class) initialization."
Nicolas Geoffray [Tue, 28 Feb 2017 14:12:33 +0000 (14:12 +0000)]
Merge "Intrinsify Integer.valueOf."
Nicolas Geoffray [Tue, 28 Feb 2017 12:43:06 +0000 (12:43 +0000)]
Merge "ARM: VIXL32: Use LoadLiteral for double constants."
Goran Jakovljevic [Mon, 27 Feb 2017 12:14:57 +0000 (13:14 +0100)]
Apply String.equals() optimizations on MIPS32 and MIPS64
Also extended test 536-checker-intrinsic-optimization.
Test: mma test-art-target-run-test in QEMU (MIPS64R6 and MIPS32R6)
Test: mma test-art-target-run-test on CI20 (MIPS32R2)
Change-Id: I6bff42f81dcb05094ac698181df16c56193bb4a8
Nicolas Geoffray [Tue, 28 Feb 2017 09:31:58 +0000 (09:31 +0000)]
Merge "Add hooks to avoid collecting code for run-tests."
Andreas Gampe [Tue, 28 Feb 2017 03:59:40 +0000 (19:59 -0800)]
ART: Fix string reporting
Correctly report zero-length strings.
Bug:
31385354
Test: m test-art-host-run-test-906-iterate-heap
Test: m test-art-host-run-test-913-heaps
Change-Id: Ic37d5c4b350cc8d04faebec54494ed6fe19eece8
Treehugger Robot [Tue, 28 Feb 2017 02:01:36 +0000 (02:01 +0000)]
Merge "Remove warning pragma from OpenJdkJvmTi.cc"
Hiroshi Yamauchi [Thu, 23 Feb 2017 23:11:56 +0000 (15:11 -0800)]
Change the region space region size to 256k.
Also add RegionSpace::non_free_region_index_limit_ to avoid the need
to scan the free end of the region table in SetFromSpace(), which
compensates (and more) the pause time increase due to the increasing
number of regions.
Ritz EAAC avg pause time (angler little core / -Xmx512m):
Before 186us
After 436us (without non_free_region_index_limit_)
After 103us
Partially revert aog/327342 and remove the temporary adjustment of
max/min-free. Changing the region size to 256k was enough to avoid the
GCE boot issue (b/
34576638), but 154-gc-loop barely fails. Make
154-gc-loop failures less strict.
Allocation performance (angler little core / -Xmx512m)
Ritz EAAC
Before 939.6
After 937.8
BinaryTree
Before 603350
After 620200 (-3%)
Bug:
12687968
Test: test-art-host
Test: GCE boot
Change-Id: I1495ab4ced806e1c4d779d49b56cea618817a0d6
Mingyao Yang [Tue, 28 Feb 2017 00:06:40 +0000 (00:06 +0000)]
Merge "Revert "CHA for interface method.""
Treehugger Robot [Tue, 28 Feb 2017 00:05:41 +0000 (00:05 +0000)]
Merge "Make testrunner use an environment variable to control building."
Mingyao Yang [Tue, 28 Feb 2017 00:00:48 +0000 (16:00 -0800)]
Revert "CHA for interface method."
This reverts commit
7130fc769896a96573f55496444d87161e4b41e8.
There might be some race condition going on. 960-default-smali
fails sometimes.
Alex Light [Mon, 27 Feb 2017 22:34:32 +0000 (14:34 -0800)]
Remove warning pragma from OpenJdkJvmTi.cc
Bug:
31455788
Test: ./test/testrunner/testrunner.py --host -j40 -b
Change-Id: Ia9343b5ff46f8921d6f1ed87bbf64016c581c450
Nicolas Geoffray [Thu, 23 Feb 2017 16:18:41 +0000 (16:18 +0000)]
Intrinsify Integer.valueOf.
Improves performance of ArrayListStress and Ritz by ~10% and ~3%.
Test: test-art-host test-art-target
bug:
30933338
Change-Id: I639046e3a18dae50069d3a7ecb538a900bb590a1
Nicolas Geoffray [Mon, 27 Feb 2017 14:01:59 +0000 (14:01 +0000)]
Add hooks to avoid collecting code for run-tests.
ensureJitCompiled ensures a method gets compiled, but does
not prevent it from being GC'ed. Add a hammer hook to avoid
doing any JIT code cache GC.
test: test-art-host with gcstress and jit.
Change-Id: I3881f10f454ded9c7a3b385d326c2e08932d39bf
Igor Murashkin [Mon, 27 Feb 2017 22:02:14 +0000 (22:02 +0000)]
Merge "proxy: Fix crash when creating proxies with dx-built libcore."
Alex Light [Wed, 22 Feb 2017 19:46:50 +0000 (11:46 -0800)]
Make testrunner use an environment variable to control building.
If it sees ART_TEST_RUN_TEST_BUILD=true then it will build
dependencies before runnning tests by default.
Test: m clean && \
ART_TEST_RUN_TEST_BUILD=false \
./test/testrunner/testrunner.py --verbose --host -j40 -b;
# Observe that it calls make
Test: m clean && \
ART_TEST_RUN_TEST_BUILD=true \
./test/testrunner/testrunner.py --verbose --host -j40 \
--no-build-dependencies;
# Observe that it does not call make
Test: m clean && \
ART_TEST_RUN_TEST_BUILD=false\
./test/testrunner/testrunner.py --verbose --host -j40;
# Observe that it does not call make
Test: m clean && \
ART_TEST_RUN_TEST_BUILD=true \
./test/testrunner/testrunner.py --verbose --host -j40;
# Observe that it calls make
Test: m clean && \
./test/testrunner/testrunner.py --verbose --host -j40;
# Observe that it does not call make
Change-Id: Iedd9e5be42b0977b177c4c4e7f9a4805387d4535
Igor Murashkin [Mon, 27 Feb 2017 18:39:49 +0000 (10:39 -0800)]
proxy: Fix crash when creating proxies with dx-built libcore.
dx and jack can place methods at different offsets within the direct methods
list. This is because (a) dx and jack name their synthetic methods
differently (e.g. 'access$100' vs '-get0') and (b) the methods are
required to be sorted by name.
Instead of hard-coding where <init>(InvocationHandler) is for
java.lang.reflect.Proxy, look it up from the name and signature which
will work regardless of which front-end compiler is used.
Test: ANDROID_FORCE_JACK_ENABLED=disabled make -j32 test-art-host-gtest-proxy_test64
Bug:
35799227
Change-Id: Ie04a37cfe293c146afbe414075a6c568c6a4a0b3
Treehugger Robot [Mon, 27 Feb 2017 20:32:34 +0000 (20:32 +0000)]
Merge "Make AddCapabilities call GetPotentialCapabilities."
Hiroshi Yamauchi [Mon, 27 Feb 2017 19:48:22 +0000 (19:48 +0000)]
Merge "Improve the region space memory mapping."
Mingyao Yang [Mon, 27 Feb 2017 19:45:10 +0000 (19:45 +0000)]
Merge "CHA for interface method."
Alex Light [Mon, 27 Feb 2017 18:26:35 +0000 (10:26 -0800)]
Make AddCapabilities call GetPotentialCapabilities.
This will allow us to programatically disable some capabilities in the
future if we so choose.
Test: ./test/testrunner/testrunner.py --host -j40 -b
Change-Id: I82e9ba05b5f3b43e6244adb5a47e054fa7b8ec29
Bill Buzbee [Mon, 27 Feb 2017 18:15:42 +0000 (18:15 +0000)]
Merge "ART: Let mterp know about invoke-custom"
Aart Bik [Mon, 27 Feb 2017 16:52:41 +0000 (16:52 +0000)]
Merge "SIMD type conversion for x86"
buzbee [Mon, 27 Feb 2017 16:05:16 +0000 (08:05 -0800)]
ART: Let mterp know about invoke-custom
By default, the mterp assembly interpreter will redirect any
new or unexpected dex opcode to the reference switch interpreter.
That's what is happening now with the new invoke-custom opcodes.
This CL simply makes that fallback transition explicit.
Test: ART_TEST_INTERPRETER=true m test-art-host
Change-Id: I9e1388ce58cb6e0618697748c6bafa55fdbbeb57
Vladimir Marko [Fri, 24 Feb 2017 14:58:29 +0000 (14:58 +0000)]
Fix java.lang.Void.TYPE (void.class) initialization.
Do not rely on the DexCache resolved types now that entries
can be evicted.
Test: 157-void-class
Test: testrunner.py --host
Bug:
35652776
Bug:
30627598
Change-Id: Ic384174ae1849072568dd6d2ff9cc60d7f7f1880
Treehugger Robot [Mon, 27 Feb 2017 15:41:47 +0000 (15:41 +0000)]
Merge "ART: Enable build options in test runner script."
Roland Levillain [Mon, 27 Feb 2017 14:34:13 +0000 (14:34 +0000)]
Merge "Revert "Use the "GC is marking" information in compiler read barriers (ARM, ARM64).""
Roland Levillain [Mon, 27 Feb 2017 14:32:08 +0000 (14:32 +0000)]
Revert "Use the "GC is marking" information in compiler read barriers (ARM, ARM64)."
This reverts commit
1372c9f40df1e47bf775f1466bbb96f472b6b9ed.
This change (along with https://android-review.googlesource.com/#/c/342429/)
creates null pointer dereferences.
Bug:
35780827
Bug:
29516974
Change-Id: I2a9c4d0ad8d2ab870c2e0ddbff32152933c77abe