OSDN Git Service
Mathieu Chartier [Mon, 11 Apr 2016 21:19:40 +0000 (21:19 +0000)]
Merge "Don\'t abort during app image loading with no boot image"
am:
80bda17
* commit '
80bda17d9810507fa016206fff90acd0e1337a3a':
Don't abort during app image loading with no boot image
Change-Id: I054825af8356a1bfdc0f6d43c8166b6a1bbd5c34
Mathieu Chartier [Mon, 11 Apr 2016 21:12:11 +0000 (21:12 +0000)]
Merge "Don't abort during app image loading with no boot image"
Mathieu Chartier [Mon, 11 Apr 2016 20:56:45 +0000 (13:56 -0700)]
Don't abort during app image loading with no boot image
Fail gracefully instead. Fixes test 119.
Bug:
22858531
Change-Id: If17acf5365f8a8fc0a2f6445c558960c62c8f948
buzbee [Mon, 11 Apr 2016 17:39:59 +0000 (17:39 +0000)]
Merge "ART: Make mterp jit profiling race tolerant"
am:
d521826
* commit '
d521826f27ea58ac0520887e5df15b35a589802d':
ART: Make mterp jit profiling race tolerant
Change-Id: Ic36b6b5c847085482eb1b28a15b6a81985ee04d8
Calin Juravle [Mon, 11 Apr 2016 17:32:24 +0000 (17:32 +0000)]
Merge "ART: Make mterp jit profiling race tolerant"
buzbee [Mon, 11 Apr 2016 14:48:18 +0000 (07:48 -0700)]
ART: Make mterp jit profiling race tolerant
The JIT profiling mechanism is intentionally non-precise to minimize
performance overhead. In general, this is not a problem. However,
the on-stack replacement mechanism assumes an order of method
compilation than can sometimes be violated if conditions are just
right.
This change allows compilation requests that were dropped due to
a race condition to eventually be re-issued. It does this by allowing
the 16-bit hotness counter to wrap around.
Change-Id: I2ac8056af8c4f7f8cef3f2c3db70b0394c26a566
Goran Jakovljevic [Mon, 11 Apr 2016 15:53:46 +0000 (15:53 +0000)]
Merge "MIPS: Improving art_quick_imt_conflict_trampoline"
am:
1e24b28
* commit '
1e24b28e89223dc4749a54582e7eaf929ca0cb5f':
MIPS: Improving art_quick_imt_conflict_trampoline
Change-Id: I3e19e7c9ae0d8cb45dbfdd5edaff6c2ea2853879
Nicolas Geoffray [Mon, 11 Apr 2016 15:45:57 +0000 (15:45 +0000)]
Merge "MIPS: Improving art_quick_imt_conflict_trampoline"
Andreas Gampe [Mon, 11 Apr 2016 15:39:06 +0000 (15:39 +0000)]
Merge "ART: Change prebuild run-test setup"
am:
b5a0647
* commit '
b5a0647c2323246a9328b6eb0123df60e26d4d66':
ART: Change prebuild run-test setup
Change-Id: I198eab5f71384c8ce829ac877676833153856538
Andreas Gampe [Mon, 11 Apr 2016 15:29:56 +0000 (15:29 +0000)]
Merge "ART: Change prebuild run-test setup"
Vladimir Marko [Mon, 11 Apr 2016 14:26:48 +0000 (14:26 +0000)]
Merge "Oatdump: Smarter StackMap lookup to improve performance."
am:
0432b41
* commit '
0432b41abde95c8eae76714ad652316682b317d6':
Oatdump: Smarter StackMap lookup to improve performance.
Change-Id: Ia57341abdafbb53e6e2baec62a63d81269dedc8b
Vladimir Marko [Mon, 11 Apr 2016 14:18:05 +0000 (14:18 +0000)]
Merge "Oatdump: Smarter StackMap lookup to improve performance."
Bill Buzbee [Mon, 11 Apr 2016 14:07:56 +0000 (14:07 +0000)]
Merge "Revert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp"""""
am:
787a500
* commit '
787a50072e8e0ce5ba417c94a9591558580f8ffe':
Revert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""""
Change-Id: I2ee3222189f402de291cf7f95cc0cc555d00da8f
Calin Juravle [Mon, 11 Apr 2016 13:56:56 +0000 (13:56 +0000)]
Merge "Revert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp"""""
Vladimir Marko [Fri, 8 Apr 2016 10:18:25 +0000 (11:18 +0100)]
Oatdump: Smarter StackMap lookup to improve performance.
Shaves off roughly 10% from the oatdump_test time.
Bug:
27824283
Change-Id: I6c2fd3b1db2723871641d43aeb543581d405cfcb
Goran Jakovljevic [Mon, 11 Apr 2016 08:32:08 +0000 (08:32 +0000)]
Merge "Implement on-stack replacement for MIPS32 and MIPS64"
am:
4009bc6
* commit '
4009bc645e3358d3150b7f94dd90a2c939f0fa51':
Implement on-stack replacement for MIPS32 and MIPS64
Change-Id: I04f85f7e3245036607257afc2348dbd7f2bab632
Nicolas Geoffray [Mon, 11 Apr 2016 08:24:18 +0000 (08:24 +0000)]
Merge "Implement on-stack replacement for MIPS32 and MIPS64"
Andreas Gampe [Wed, 23 Mar 2016 17:54:21 +0000 (10:54 -0700)]
ART: Change prebuild run-test setup
Prebuild was meant to check whether the runtime correctly loads
pre-existing oat files. With the advent of patching images, this
has actually been reduced to "does the runtime run self-patchoat"
correctly.
We cannot produce a prebuilt oat file that does not have to be
patched, as the runtime will patch the image when it starts.
There are two options to make this more meaningful:
* In the prebuild setting, first run patchoat to explicitly create
a valid dalvik-cache.
* Change the dex2oat output to be the odex file, which can be
patched like a regular file.
This change shows the latter approach.
Change-Id: I5234e10d78f7ea6c7ad8598db67d3fad8ba42b67
Alex Light [Fri, 8 Apr 2016 18:58:45 +0000 (18:58 +0000)]
Merge "Make sure non-fatal errors aren\'t printed."
am:
dea5933
* commit '
dea59334a2bf9f7709fdb1874c5db6e9537bc291':
Make sure non-fatal errors aren't printed.
Change-Id: I2e8e6e5db320825e2d4cc4cbb931277181f0ed33
Andreas Gampe [Fri, 8 Apr 2016 18:49:35 +0000 (18:49 +0000)]
Merge "ART: Refactor imgdiag internals"
am:
c52e3f9
* commit '
c52e3f9e300d5c3f30f13a7812f0ff7aa8d9a4b1':
ART: Refactor imgdiag internals
Change-Id: I32cf0bcb4f4431562c32e510930e2b76dd738d80
Alex Light [Fri, 8 Apr 2016 18:42:03 +0000 (18:42 +0000)]
Merge "Make sure non-fatal errors aren't printed."
Andreas Gampe [Fri, 8 Apr 2016 18:33:25 +0000 (18:33 +0000)]
Merge "ART: Refactor imgdiag internals"
Mathieu Chartier [Fri, 8 Apr 2016 18:07:07 +0000 (18:07 +0000)]
Merge changes from topic \'rr_barrier\'
am:
e835f3a
* commit '
e835f3a2e4a7af404e61a88058712f77737d87cd':
Store precice set of which constructors require barriers
Revert "Revert "Check if we require barrier if we did not resolve classes""
Revert "Revert "Change RequiresConstructorBarrier default to yes""
Change-Id: Ib0083850b2870223c13e1aa3128f5f656de868e8
Mathieu Chartier [Fri, 8 Apr 2016 17:50:05 +0000 (17:50 +0000)]
Merge changes from topic 'rr_barrier'
* changes:
Store precice set of which constructors require barriers
Revert "Revert "Check if we require barrier if we did not resolve classes""
Revert "Revert "Change RequiresConstructorBarrier default to yes""
buzbee [Fri, 8 Apr 2016 17:45:20 +0000 (17:45 +0000)]
Merge "ART: Fix race in on-stack replacement"
am:
250a23c
* commit '
250a23c892bb809267325c0744c6f70fca49ac94':
ART: Fix race in on-stack replacement
Change-Id: I73be63f71d7ad8c91ee617dee8e812cabf8bbbd3
Mathieu Chartier [Thu, 7 Apr 2016 20:19:19 +0000 (13:19 -0700)]
Store precice set of which constructors require barriers
Fixes bugs where things in the boot image might not have been
calculated even though resolved_clases was true. This only occured
for app and test compiles though.
Fixes test 476-checker-ctor-memory-barrier which was failing due to
inlining something in the boot class path and getting a unexpected
barrier since the barrier defaults to enabled.
No measurable increase in RAM usage.
Bug:
28005874
Change-Id: I4a417819aa129c95f4a83c38df1a66eb77824ea9
Bill Buzbee [Fri, 8 Apr 2016 17:28:49 +0000 (17:28 +0000)]
Merge "ART: Fix race in on-stack replacement"
Alex Light [Fri, 8 Apr 2016 16:44:54 +0000 (09:44 -0700)]
Make sure non-fatal errors aren't printed.
During run-test setup `du` can print error messages if the folder it
is running on is modified during its execution. We silence these error
messages since they shouldn't affect the validity of the test.
Change-Id: I9f59e39c2a346414f025ce1fa79b453329080d30
Roland Levillain [Fri, 8 Apr 2016 16:13:59 +0000 (16:13 +0000)]
Merge "Ignore libcore.java.lang.ThreadTest failures on device."
am:
6c5d868
* commit '
6c5d868c94401aeb7596d5d36380b61c7ed81222':
Ignore libcore.java.lang.ThreadTest failures on device.
Change-Id: I531a2a34824bdaadfacde195dfd179ceccfb9e62
buzbee [Thu, 7 Apr 2016 21:42:47 +0000 (14:42 -0700)]
ART: Fix race in on-stack replacement
The expected sequence of events for on-stack replacement is:
1. Method goes warm, triggering enhanced profiling
2. Method goes hot, triggering method compilation
3. Method goes really hot, triggering an osr method compilation.
4. Interpreter polls for the existence of an osr entry point,
and transitons to compiled code if found.
We have a race problem if #2 and #3 happen closely together, and
the osr method compilation begins before the regular method
compilation. In that case, the jit sees that the method is
already being compiled (the osr method - but it does not
distinguish the two), and discards the normal compilation request.
So, the osr version is compiled and the normal version is discarded.
In #4, the MaybeDoOnStackReplacement() check assumes that a normal
version of the compiled method must exist before doing an on-stack
replacement, so it keeps returning false.
This is why we were seeing sporadic timeout failures of
570-checker-osr when the mterp fast branch profiling was
introduced. The branch profiling performance enhancements
greatly reduced the time between #2 and #3, increasing the liklihood
of losing the race. Further, the new code clamped hotness to avoid
wrap-around. The race existed (and likely occurred) in the previous
version, but because hotness counters were allowed to overflow and
wrap around you'd eventually hit the threshold a second time and
try again - masking the problem.
Tip 'o the hat to Serguei Katkov for identifying the problem.
A possible solution (taken in this CL) is to differentiate osr
compilations from normal method compilations.
Bug:
27939339
Change-Id: I71044516b35dc69de9fc2d2a445e33809ac650ed
Bill Buzbee [Mon, 4 Apr 2016 16:59:29 +0000 (16:59 +0000)]
Revert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""""
Bug:
28081559
This reverts commit
961ea9fe42edcc2c57469bf451d1ca421da5cd59.
Change-Id: I98a5bb8112646706ae7bd73bf6393cb956466be3
Roland Levillain [Fri, 8 Apr 2016 16:01:18 +0000 (16:01 +0000)]
Merge "Ignore libcore.java.lang.ThreadTest failures on device."
Roland Levillain [Fri, 8 Apr 2016 15:04:11 +0000 (16:04 +0100)]
Ignore libcore.java.lang.ThreadTest failures on device.
Since https://android-review.googlesource.com/#/c/209427
has been merged, libcore.java.lang.ThreadTest tests are
failing with this error on ARM64:
java.lang.UnsatisfiedLinkError: dlopen failed: library "libnativehelper_compat_libc++.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:977)
at java.lang.System.loadLibrary(System.java:1628)
at libcore.java.lang.ThreadTest.<clinit>(ThreadTest.java:26)
Ignore those failures for now to make the build turn green
again, while we investigate.
Bug:
28082914
Change-Id: Ia8c3c776c99aace06701479d1440c828d39cbec3
Jeff Hao [Fri, 8 Apr 2016 03:23:36 +0000 (03:23 +0000)]
Merge "Fix combined checksum calculation to use isa."
am:
82a0229
* commit '
82a0229e949eb3ea209c2bd33fe2d60908f5dbc7':
Fix combined checksum calculation to use isa.
Change-Id: I94ed5fb0d1a738111974e8bf502251859e8df855
Jeff Hao [Fri, 8 Apr 2016 03:23:36 +0000 (03:23 +0000)]
Merge "Combine checksum of all boot images."
am:
9863b6c
* commit '
9863b6cd07945b83d3a91a27c94963d8b313df2d':
Combine checksum of all boot images.
Change-Id: I1926eeff7d3e69bc2925fa7507fbe845bb982899
Jeff Hao [Fri, 8 Apr 2016 03:16:37 +0000 (03:16 +0000)]
Merge "Fix combined checksum calculation to use isa."
Jeff Hao [Fri, 8 Apr 2016 03:16:24 +0000 (03:16 +0000)]
Merge "Combine checksum of all boot images."
Jeff Hao [Fri, 8 Apr 2016 02:46:31 +0000 (19:46 -0700)]
Fix combined checksum calculation to use isa.
Bug:
28054110
(cherry-picked from commit
8bbda8e683a1933755d0b8a68fed620cd63148ee)
Change-Id: I228db6ea1003e4e70d6a5fa7345d56409e70bd87
Jeff Hao [Thu, 7 Apr 2016 22:40:54 +0000 (15:40 -0700)]
Combine checksum of all boot images.
Allows a change to be detected in more than just the first image.
Combines checksums of all boot images using xor. A better hash is left
as TODO.
Bug:
28054110
(cherry-picked from commit
4f351aae00f43dd4e3290976f249d3664cc47091)
Change-Id: Ia557e2460ca582082368ef93508c04ce32c3036a
buzbee [Thu, 7 Apr 2016 23:59:31 +0000 (23:59 +0000)]
Merge "ART: Fix interpreter single-step when doing OSR"
am:
dc80925
* commit '
dc8092521b50b108607ed54afde94d20a22468df':
ART: Fix interpreter single-step when doing OSR
Change-Id: I717599ea10d051b56167b82784087c48631ef322
Bill Buzbee [Thu, 7 Apr 2016 23:47:55 +0000 (23:47 +0000)]
Merge "ART: Fix interpreter single-step when doing OSR"
buzbee [Thu, 7 Apr 2016 20:52:48 +0000 (13:52 -0700)]
ART: Fix interpreter single-step when doing OSR
Records an interpreter exit when in single-step mode and we've
finished processing the method via on-stack replacement.
Change-Id: I7a7d9ee9e4f3fbf7f829d9f54eca0e7c64395003
Hiroshi Yamauchi [Thu, 7 Apr 2016 21:18:29 +0000 (21:18 +0000)]
Merge changes Ie23877ac,I262f6be8
am:
f2197e4
* commit '
f2197e43f42499be852a0fce2d755f25e2007be8':
Revert "Disable some image_test cases with concurrent collector."
Fix image_test for the CC collector.
Change-Id: I91f1527c9b32cc3889b64a8c30486ee9c0a29f16
Hiroshi Yamauchi [Thu, 7 Apr 2016 21:10:54 +0000 (21:10 +0000)]
Merge changes Ie23877ac,I262f6be8
* changes:
Revert "Disable some image_test cases with concurrent collector."
Fix image_test for the CC collector.
Hiroshi Yamauchi [Thu, 7 Apr 2016 18:44:50 +0000 (11:44 -0700)]
Revert "Disable some image_test cases with concurrent collector."
This reverts commit
d52765768b634c6f32a9bddd5c1269f26d32ea3a.
Bug:
27578460
Change-Id: Ie23877ac5332e05805c251749159e8f00af4ac8c
Hiroshi Yamauchi [Thu, 7 Apr 2016 18:31:26 +0000 (11:31 -0700)]
Fix image_test for the CC collector.
Increase the image address space reserve.
Bug:
27578460
Change-Id: I262f6be81c496a7a777013702e3da74ea4d619b4
Jeff Hao [Thu, 7 Apr 2016 18:12:58 +0000 (18:12 +0000)]
Merge "Remove AnnotationAccess and its remaining uses."
am:
2c6760a
* commit '
2c6760a0eb1e05d3a89a6cca9d2746da3d547e9e':
Remove AnnotationAccess and its remaining uses.
Change-Id: I40401184b8576440585d6e1c4f7d138965887c30
Jeff Hao [Thu, 7 Apr 2016 18:06:13 +0000 (18:06 +0000)]
Merge "Remove AnnotationAccess and its remaining uses."
Mathieu Chartier [Thu, 7 Apr 2016 17:52:52 +0000 (10:52 -0700)]
Revert "Revert "Check if we require barrier if we did not resolve classes""
This reverts commit
a7ab4997f7263439561093ffbc7dea29181a47c5.
Mathieu Chartier [Thu, 7 Apr 2016 17:19:48 +0000 (10:19 -0700)]
Revert "Revert "Change RequiresConstructorBarrier default to yes""
This reverts commit
0436ee6bd33a0b905cd2a7e333f7935da1bd5d86.
Roland Levillain [Thu, 7 Apr 2016 16:20:25 +0000 (16:20 +0000)]
Merge "Remove more Quick-related macros in tests."
am:
7fa1f92
* commit '
7fa1f92cbf98c40baa00c6fb9331ec7ac72abfa8':
Remove more Quick-related macros in tests.
Change-Id: I001069102af646ac0a53d9cbbb106a61199b42c6
David Brazdil [Thu, 7 Apr 2016 16:13:12 +0000 (16:13 +0000)]
Merge "Revert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals"""
am:
8913162
* commit '
8913162a5959035f100f608fd5ccc348cf3922cf':
Revert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals""
Change-Id: I5697e5764208115f7bdd9e70e6322cefa2451c77
Roland Levillain [Thu, 7 Apr 2016 16:13:10 +0000 (16:13 +0000)]
Merge "Remove more Quick-related macros in tests."
David Brazdil [Thu, 7 Apr 2016 16:03:51 +0000 (16:03 +0000)]
Merge "Revert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals"""
David Brazdil [Thu, 7 Apr 2016 09:54:26 +0000 (09:54 +0000)]
Revert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals""
This patch merges the instruction-building phases from HGraphBuilder
and SsaBuilder into a single HInstructionBuilder class. As a result,
it is not necessary to generate HLocal, HLoadLocal and HStoreLocal
instructions any more, as the builder produces SSA form directly.
Saves 5-15% of arena-allocated memory (see bug for more data):
GMS 20.46MB => 19.26MB (-5.86%)
Maps 24.12MB => 21.47MB (-10.98%)
YouTube 28.60MB => 26.01MB (-9.05%)
This CL fixed an issue with parsing quickened instructions.
Bug:
27894376
Bug:
27998571
Bug:
27995065
Change-Id: I20dbe1bf2d0fe296377478db98cb86cba695e694
Roland Levillain [Wed, 6 Apr 2016 17:23:01 +0000 (18:23 +0100)]
Remove more Quick-related macros in tests.
Remove these macros, as Quick is gone:
- TEST_DISABLED_FOR_HEAP_REFERENCE_POISONING_WITH_QUICK
- TEST_DISABLED_FOR_READ_BARRIER_WITH_QUICK
Also remove TEST_DISABLED_FOR_NON_PIC_COMPILING_WITH_OPTIMIZING,
as it is no longer used anywhere.
Change-Id: I78617fc060b7727f9b6fffcb2348d6fca01b4928
Roland Levillain [Thu, 7 Apr 2016 15:06:54 +0000 (15:06 +0000)]
Merge "Revert "Change RequiresConstructorBarrier default to yes""
am:
950dd55
* commit '
950dd553041b324e9e343a60d94d45596b5c7926':
Revert "Change RequiresConstructorBarrier default to yes"
Change-Id: Idc9003dc03b001eb248866eef9edf35752d60e59
Roland Levillain [Thu, 7 Apr 2016 15:06:54 +0000 (15:06 +0000)]
Merge "Revert "Check if we require barrier if we did not resolve classes""
am:
35d6a42
* commit '
35d6a426c699da05ee6f962cfbe426b7d638780a':
Revert "Check if we require barrier if we did not resolve classes"
Change-Id: I4e7cb7257bb9b5949d1d05526c647e8fc1ed48f2
Roland Levillain [Thu, 7 Apr 2016 14:58:32 +0000 (14:58 +0000)]
Merge "Revert "Change RequiresConstructorBarrier default to yes""
Roland Levillain [Thu, 7 Apr 2016 14:58:12 +0000 (14:58 +0000)]
Revert "Change RequiresConstructorBarrier default to yes"
CL https://android-review.googlesource.com/#/c/213119/ is
breaking run-test 476-checker-ctor-memory-barrier on ARM
and ARM64.
Bug:
28005874
This reverts commit
f2f0f4b0b9185fe0b6d1fb22744a871c96296db2.
Change-Id: Ic6e97ab07358406c07c654ac9de700f0186f15f8
Roland Levillain [Thu, 7 Apr 2016 14:57:50 +0000 (14:57 +0000)]
Merge "Revert "Check if we require barrier if we did not resolve classes""
Roland Levillain [Thu, 7 Apr 2016 14:56:58 +0000 (14:56 +0000)]
Revert "Check if we require barrier if we did not resolve classes"
CL https://android-review.googlesource.com/#/c/213119/ is
breaking run-test 476-checker-ctor-memory-barrier on ARM
and ARM64, and reverting it requires reverting this CL
(https://android-review.googlesource.com/#/c/213109/)
first.
Bug:
28005874
This reverts commit
20fd7cdd25364b16d878df037c6ae0fbd5f2a9ac.
Change-Id: Iaf174b2df3dd4dd469c79ca3f2c68ef87748d124
Vladimir Marko [Thu, 7 Apr 2016 14:44:16 +0000 (14:44 +0000)]
Merge "Thumb2: Show the immediate in ROR (immediate) disassembly."
am:
173e99a
* commit '
173e99a73e535f07bc32fc76d3ff9f987caeffda':
Thumb2: Show the immediate in ROR (immediate) disassembly.
Change-Id: If5d0d4b38f673d4c1a7353ab2f1a7def5a086afe
Vladimir Marko [Thu, 7 Apr 2016 14:38:29 +0000 (14:38 +0000)]
Merge "Thumb2: Show the immediate in ROR (immediate) disassembly."
Vladimir Marko [Thu, 7 Apr 2016 12:20:26 +0000 (12:20 +0000)]
Merge "Add 20s timeout to 570-checker-osr."
am:
748ad81
* commit '
748ad81ef56f0d9afb431f3ba658884f16289479':
Add 20s timeout to 570-checker-osr.
Change-Id: If8e78c2d2d30f08e9cd44c62225f4df81315ca55
Vladimir Marko [Thu, 7 Apr 2016 12:12:35 +0000 (12:12 +0000)]
Merge "Add 20s timeout to 570-checker-osr."
Vladimir Marko [Thu, 7 Apr 2016 09:12:31 +0000 (10:12 +0100)]
Add 20s timeout to 570-checker-osr.
It's better to report a timeout than to hang indefinitely.
Change-Id: Ibfa8059c8b44220c7a55801b020094fc342c8047
Vladimir Marko [Thu, 7 Apr 2016 09:24:19 +0000 (09:24 +0000)]
Merge "Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod."
am:
391e155
* commit '
391e155a6936a05bd39b171031ec21d2dee62133':
Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod.
Change-Id: I432e9ad415c56717f3e8090261d4c39dc6a74cef
Vladimir Marko [Thu, 7 Apr 2016 09:18:36 +0000 (09:18 +0000)]
Merge "Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod."
Roland Levillain [Thu, 7 Apr 2016 09:14:21 +0000 (09:14 +0000)]
Merge "Move optimizations out of HInliner::TryBuildAndInlineHelper."
am:
791947d
* commit '
791947dc6284b6f28bb6fdbe1b585eb3cf821e44':
Move optimizations out of HInliner::TryBuildAndInlineHelper.
Change-Id: I6f3e248be49ef5de0e472e493e5baaef12b46109
Roland Levillain [Thu, 7 Apr 2016 09:08:06 +0000 (09:08 +0000)]
Merge "Move optimizations out of HInliner::TryBuildAndInlineHelper."
Andreas Gampe [Thu, 7 Apr 2016 00:50:04 +0000 (00:50 +0000)]
Merge changes I775a57c9,I14c0836f,I075c1b11
am:
e7fbbe4
* commit '
e7fbbe4ea5c36f5d4bea6e060f535f883da8294c':
ART: Add cutout for Unsafe.putObjectVolatile
ART: Add integer & long parsing cutout to unstarted runtime
ART: Add getDeclaredConstructor cutout for unstarted runtime
Change-Id: Id0d5670864d9b37fff4b22b1581a452dbe8e5557
Andreas Gampe [Thu, 7 Apr 2016 00:42:30 +0000 (00:42 +0000)]
Merge changes I775a57c9,I14c0836f,I075c1b11
* changes:
ART: Add cutout for Unsafe.putObjectVolatile
ART: Add integer & long parsing cutout to unstarted runtime
ART: Add getDeclaredConstructor cutout for unstarted runtime
Mathieu Chartier [Wed, 6 Apr 2016 23:10:02 +0000 (23:10 +0000)]
Merge "Check if we require barrier if we did not resolve classes"
am:
207c3ea
* commit '
207c3ea34a89b2f912010230c39521d8c4656340':
Check if we require barrier if we did not resolve classes
Change-Id: I4040743ed8f79d81fb72a5434da568cd384ddb34
Mathieu Chartier [Wed, 6 Apr 2016 23:05:00 +0000 (23:05 +0000)]
Merge "Check if we require barrier if we did not resolve classes"
Mathieu Chartier [Wed, 6 Apr 2016 21:41:23 +0000 (14:41 -0700)]
Check if we require barrier if we did not resolve classes
Check fields instead of just always inserting the return void
barrier.
Bug:
28005874
(cherry picked from commit
03c7df9648028228d75dddfc25cbc81ab8096167)
Change-Id: I1207fecc9a4425d024a7e5e1a850c9e2a6e17c31
Mathieu Chartier [Wed, 6 Apr 2016 22:59:46 +0000 (22:59 +0000)]
Merge "Fix regression in ModUnionTable RAM usage"
am:
43574b5
* commit '
43574b561a9f4b1721ea4ab2bbccae7a825c2ebb':
Fix regression in ModUnionTable RAM usage
Change-Id: I49fa1b6de18ef09123f0bd393924996cd0440112
Mathieu Chartier [Wed, 6 Apr 2016 22:53:45 +0000 (22:53 +0000)]
Merge "Fix regression in ModUnionTable RAM usage"
Mathieu Chartier [Wed, 6 Apr 2016 22:27:19 +0000 (15:27 -0700)]
Fix regression in ModUnionTable RAM usage
We forgot to check if a reference changed before assigning it back,
this caused extra dirty pages in the image.
BusinessCard .art PSS
Before: 1678 KB
After: 991 KB
System wide .art PSS goes down ~20MB on my shamu.
Bug:
27906566
(cherry picked from commit
014885a8561f2415cb19ebde1e4084b88d63b746)
Change-Id: I64d149f10f3ef1ed1cb61810282559b47823014c
Andreas Gampe [Wed, 6 Apr 2016 04:12:51 +0000 (21:12 -0700)]
ART: Add cutout for Unsafe.putObjectVolatile
Add an unstarted-runtime cutout for putObjectVolatile.
Allows to compile-time initialize:
* android.content.res.Configuration
* android.icu.text.PluralRules$SimpleTokenizer
* android.icu.text.UnicodeSet
* android.icu.util.VersionInfo
* android.util.LocaleList
May allow follow-up changes to compile-time initialize
more ICU classes.
Bug:
27265238
(cherry picked from commit
1813d116cb1367f0ae449221c7ff6c6b421d269f)
Change-Id: I775a57c9f15aa8f42a4dffbd1dd40c641c30f645
Andreas Gampe [Wed, 6 Apr 2016 03:14:30 +0000 (20:14 -0700)]
ART: Add integer & long parsing cutout to unstarted runtime
Add a cutout for Integer.parseInt and Long.parseLong. Only handle
(some) successful cases, and abort the transaction in the rest.
Add tests.
Allows to compile-time initialize:
* com.android.org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers
* com.android.org.bouncycastle.asn1.x509.X509ObjectIdentifiers
* sun.security.x509.InhibitAnyPolicyExtension
Bug:
27265238
(cherry picked from commit
9c62dab16e4be0c19a2e6c6c0cc2b24c2814c6f2)
Change-Id: I14c0836fd9ec7c9bf49d8186ff14a3c6830ff711
Andreas Gampe [Wed, 6 Apr 2016 01:18:43 +0000 (18:18 -0700)]
ART: Add getDeclaredConstructor cutout for unstarted runtime
In the vein of getDeclaredMethod and getDeclaredField. Refactor
code from java_lang_Class to share code.
Allows to compile-time initialize:
* sun.security.x509.AVAKeyword
* sun.security.x509.X500Name
Bug:
27265238
(cherry picked from commit
f72f19fac0016499d33fd75b0463d0128a58a9f4)
Change-Id: I075c1b11f3408f5b31e4f84140a24fd8d3eaa17e
Mathieu Chartier [Wed, 6 Apr 2016 19:31:05 +0000 (19:31 +0000)]
Merge "Shard classloader classes lock"
am:
dc148d2
* commit '
dc148d24cc11845036063a2876c9bfef03d00ce5':
Shard classloader classes lock
Change-Id: I199b1643d34d20d64f3263178dc176ec7421e6c6
Mathieu Chartier [Wed, 6 Apr 2016 19:31:05 +0000 (19:31 +0000)]
Merge "Change RequiresConstructorBarrier default to yes"
am:
1633881
* commit '
163388162bde0012dc13a59fb8974723af881e58':
Change RequiresConstructorBarrier default to yes
Change-Id: Iccb2432ac2d2414de62042f685808f1debc05985
Mathieu Chartier [Wed, 6 Apr 2016 19:25:39 +0000 (19:25 +0000)]
Merge "Shard classloader classes lock"
Mathieu Chartier [Tue, 5 Apr 2016 21:36:57 +0000 (14:36 -0700)]
Shard classloader classes lock
Used to guard adding and removing classes.
Previously we used the class linker classes lock, but this had
a deadlock issue since the reference processor may need to acquire
the lock to mark the classes of a class loader. Another thread could
be blocked trying to access weak globals while also holding the
class linker classes lock.
Bug:
27946564
(cherry picked from commit
1609e3a42051769f4a8be3b6731e7bb2f828b3bb)
Change-Id: Ic5cfe573c4e6822d49ad0862ffdd9d036e439a96
Mathieu Chartier [Wed, 6 Apr 2016 19:22:28 +0000 (19:22 +0000)]
Merge "Change RequiresConstructorBarrier default to yes"
Mathieu Chartier [Wed, 6 Apr 2016 17:47:45 +0000 (10:47 -0700)]
Change RequiresConstructorBarrier default to yes
Previously it defaulted to false, this caused incorrect dex2dex if
the resolution pass was not run.
TODO: Re-enable the no barrier for no resolution case to improve
interpreter performance slightly.
Bug:
28005874
(cherry picked from commit
e5d8020b03956db6d533852b3ae940e0eb0fafc4)
Change-Id: Ibde6e18b8543f7bc9e17db6941a710756cd8b617
Mathieu Chartier [Wed, 6 Apr 2016 18:37:30 +0000 (18:37 +0000)]
Merge "Change hash set to use noexcept"
am:
d1bdb7c
* commit '
d1bdb7cc301a75050bd440597997421c6b9278d9':
Change hash set to use noexcept
Change-Id: I4229ca3143e57b906e7809160100159fa855511d
Mathieu Chartier [Wed, 6 Apr 2016 18:35:18 +0000 (18:35 +0000)]
Merge "Change hash set to use noexcept"
Mathieu Chartier [Wed, 6 Apr 2016 02:13:37 +0000 (19:13 -0700)]
Change hash set to use noexcept
Otherwise it uses copy constructor instead of move constructor in
some cases (like std::vector).
Reduces shared dirty native by around 350k.
Bug:
27860101
(cherry picked from commit
5ef868c8332db11bb90284887a7f676f5dbef373)
Change-Id: I0311fa530fc2436630abebfdac2cad375eb4d691
Vladimir Marko [Wed, 6 Apr 2016 18:05:19 +0000 (19:05 +0100)]
Thumb2: Show the immediate in ROR (immediate) disassembly.
Now disassembled as "mov ., ., ror #imm5".
Change-Id: Iad201662fd6aa3f87b95c7293fafe030c4bbdbf3
Yi Kong [Wed, 6 Apr 2016 17:07:54 +0000 (17:07 +0000)]
Merge "Fix and re-enable compiler_driver_test"
am:
0fb09f7
* commit '
0fb09f7a441a2858c4724198f1ef74d9235be044':
Fix and re-enable compiler_driver_test
Change-Id: Ie4455edb68b32b13301d2a1d845fe506c4a72784
Mathieu Chartier [Wed, 6 Apr 2016 16:59:33 +0000 (16:59 +0000)]
Merge "ART: Handle OOM in stack overflow"
am:
c28a0d7
* commit '
c28a0d71d18e333b22b453128dc549a44634b1fa':
ART: Handle OOM in stack overflow
Change-Id: Ia922b8190ee4fcd34e7cbfc1248f1276a2498ff6
Yi Kong [Wed, 6 Apr 2016 16:59:02 +0000 (16:59 +0000)]
Merge "Fix and re-enable compiler_driver_test"
Mathieu Chartier [Wed, 6 Apr 2016 16:51:48 +0000 (16:51 +0000)]
Merge "ART: Handle OOM in stack overflow"
Yi Kong [Mon, 4 Apr 2016 16:44:59 +0000 (17:44 +0100)]
Fix and re-enable compiler_driver_test
This reverts commit
6f58cb85328bed2f3ea246cce4080244544d7c2b.
The move to OpenJDK introduces new dependencies to compile these
methods, however we don't actually need them to run this test. Remove
them here to enable the test again.
Bug:
25836016
Change-Id: I75b12c48941fca6646142004accae8364e8c6dbc
Roland Levillain [Wed, 6 Apr 2016 16:45:58 +0000 (17:45 +0100)]
Move optimizations out of HInliner::TryBuildAndInlineHelper.
This is a followup CL to
https://android-review.googlesource.com/#/c/212651.
Change-Id: I37d1c3fc06d8e36c335dd62887936486f7deeba4
Vladimir Marko [Wed, 6 Apr 2016 16:33:41 +0000 (17:33 +0100)]
Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod.
Use the original method index instead of the target method
index because the target method may point to a different dex
file.
No regression test: this currently happens only if the
codegen uses the kDexCacheViaMethod as a fallback for
another load kind and we aim to avoid that fallback, so it
would be difficult to write a reliable regression test. We
could try and exploit current fallbacks for irreducible
loops on x86 and arm but those fallbacks will eventually
disappear anyway.
Bug:
28036230
Change-Id: I4cc9e046480d3d60a7fb521f0ca6a98914625cdc
Mathieu Chartier [Mon, 4 Apr 2016 23:49:44 +0000 (16:49 -0700)]
ART: Handle OOM in stack overflow
When creating a stack overflow error, we must not allocate a
new out-of-memory error. Running its constructor will lead to
a nested exception.
Bug:
27663199
Change-Id: I2a7b5b937730eeade22dce654cfc4ad903c5f040