OSDN Git Service
David Brazdil [Thu, 7 Apr 2016 16:16:29 +0000 (16:16 +0000)]
Merge "Revert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals""" am:
8913162
am:
9eff981
* commit '
9eff98156ec2924c47bf816650a8ee127f74502f':
Revert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals""
Change-Id: Idc9951c9ae6463c75662a553c3848ef66d64184d
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
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 [Thu, 7 Apr 2016 15:10:11 +0000 (15:10 +0000)]
Merge "Revert "Change RequiresConstructorBarrier default to yes"" am:
950dd55
am:
d3d2747
* commit '
d3d2747626c003c014d7d771db1035b5f3f0c8e1':
Revert "Change RequiresConstructorBarrier default to yes"
Change-Id: Ib329d3c20da29b28cade87a1c6fb71926f4a07eb
Roland Levillain [Thu, 7 Apr 2016 15:10:10 +0000 (15:10 +0000)]
Merge "Revert "Check if we require barrier if we did not resolve classes"" am:
35d6a42
am:
bc5334e
* commit '
bc5334e68da1a17e6c24435756a25607394d23cd':
Revert "Check if we require barrier if we did not resolve classes"
Change-Id: Ic7c3fc1c68c72353f7393373690deb9bd85af46a
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:47:32 +0000 (14:47 +0000)]
Merge "Thumb2: Show the immediate in ROR (immediate) disassembly." am:
173e99a
am:
704da2f
* commit '
704da2f8e81659f98f3df9ed6924ec0349936f87':
Thumb2: Show the immediate in ROR (immediate) disassembly.
Change-Id: I8c73cdacd92ccd22138d32addc4a5682f0130be7
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:23:34 +0000 (12:23 +0000)]
Merge "Add 20s timeout to 570-checker-osr." am:
748ad81
am:
522354b
* commit '
522354b3f7c76970eb37be50836b8473e301286c':
Add 20s timeout to 570-checker-osr.
Change-Id: I282bd15ba2465c5225933a22ebdcce4094bd36ea
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:27:13 +0000 (09:27 +0000)]
Merge "Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod." am:
391e155
am:
5a39d8b
* commit '
5a39d8b1c408dca0757c02a1b472470312834f45':
Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod.
Change-Id: I26c95ffd138ff7fa49c1e8be23e3a61cf2e66aa2
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:17:29 +0000 (09:17 +0000)]
Merge "Move optimizations out of HInliner::TryBuildAndInlineHelper." am:
791947d
am:
211a390
* commit '
211a3903da62e60ab9218d395941c566f5078954':
Move optimizations out of HInliner::TryBuildAndInlineHelper.
Change-Id: I289ab05e21d1bf02da532d94f875aec7f5a9fc67
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:52:44 +0000 (00:52 +0000)]
Merge changes I775a57c9,I14c0836f,I075c1b11 am:
e7fbbe4
am:
db9cb1c
* commit '
db9cb1cf5b66413f92082f75b3ae10f75874dd38':
ART: Add cutout for Unsafe.putObjectVolatile
ART: Add integer & long parsing cutout to unstarted runtime
ART: Add getDeclaredConstructor cutout for unstarted runtime
Change-Id: Iea6a95cf0a352335e15714935a80f741dd1598cc
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
Mathieu Chartier [Thu, 7 Apr 2016 00:50:04 +0000 (00:50 +0000)]
Merge "Check if we require barrier if we did not resolve classes" am:
207c3ea
am:
78933ae
* commit '
78933ae9ac0b70b9464b04e175fc15f3980cdee8':
Check if we require barrier if we did not resolve classes
Change-Id: I4fb70ce061d4aa0113a428d69dcd624eb4c118a0
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 23:02:13 +0000 (23:02 +0000)]
Merge "Fix regression in ModUnionTable RAM usage" am:
43574b5
am:
5bc39af
* commit '
5bc39afa9d22ce2c78f65ba48b07dc73c2726966':
Fix regression in ModUnionTable RAM usage
Change-Id: I85b03cce5a929832598f949ff15b8af47e38d176
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:54:14 +0000 (22:54 +0000)]
Merge "Fix regression in ModUnionTable RAM usage" into nyc-dev
am:
5650650
* commit '
5650650dbb97460adb957a6da3f320ef9574bc6b':
Fix regression in ModUnionTable RAM usage
Change-Id: Ibb950dc3fd4075ef5d63a45b25900f153dfc18f4
Mathieu Chartier [Wed, 6 Apr 2016 22:54:14 +0000 (22:54 +0000)]
Merge "Check if we require barrier if we did not resolve classes" into nyc-dev
am:
24a9ecf
* commit '
24a9ecf261ebfe079d41d6da7c6ee225c9555d69':
Check if we require barrier if we did not resolve classes
Change-Id: I15a2068db76574f9308dd2f06d32cfc31db50d63
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
Mathieu Chartier [Wed, 6 Apr 2016 22:45:41 +0000 (22:45 +0000)]
Merge "Fix regression in ModUnionTable RAM usage" into nyc-dev
Mathieu Chartier [Wed, 6 Apr 2016 22:45:13 +0000 (22:45 +0000)]
Merge "Check if we require barrier if we did not resolve classes" into nyc-dev
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
Change-Id: I6e398da79f0838960e4cb6650b24b1e6f60784ae
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
Change-Id: I62cc1c3979304642109961fcf2607a7df065a162
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
Andreas Gampe [Wed, 6 Apr 2016 20:05:04 +0000 (20:05 +0000)]
Merge "ART: Add cutout for Unsafe.putObjectVolatile" into nyc-dev
am:
091c54c
* commit '
091c54ce75ff6cd2f5a39a53341ae4596ac7108a':
ART: Add cutout for Unsafe.putObjectVolatile
Change-Id: I12ecad06bdd8f241b8623d9deaaff7518d224abf
Andreas Gampe [Wed, 6 Apr 2016 20:05:04 +0000 (20:05 +0000)]
Merge "ART: Add integer & long parsing cutout to unstarted runtime" into nyc-dev
am:
949160a
* commit '
949160ab22771dd7fc2ac192963299c11ca0f3c0':
ART: Add integer & long parsing cutout to unstarted runtime
Change-Id: Icb2655ff72255ac73a5eb41dfcebcffd0756dc9e
Andreas Gampe [Wed, 6 Apr 2016 20:05:04 +0000 (20:05 +0000)]
Merge "ART: Add getDeclaredConstructor cutout for unstarted runtime" into nyc-dev
am:
54eb89d
* commit '
54eb89d372b59b97a464555602788ba2f17a4ea8':
ART: Add getDeclaredConstructor cutout for unstarted runtime
Change-Id: I80fb3f5eb1cc1f9e09d518138d7cd2036a9b8b94
Andreas Gampe [Wed, 6 Apr 2016 19:57:20 +0000 (19:57 +0000)]
Merge "ART: Add cutout for Unsafe.putObjectVolatile" into nyc-dev
Andreas Gampe [Wed, 6 Apr 2016 19:57:10 +0000 (19:57 +0000)]
Merge "ART: Add integer & long parsing cutout to unstarted runtime" into nyc-dev
Andreas Gampe [Wed, 6 Apr 2016 19:56:56 +0000 (19:56 +0000)]
Merge "ART: Add getDeclaredConstructor cutout for unstarted runtime" into nyc-dev
Mathieu Chartier [Wed, 6 Apr 2016 19:33:15 +0000 (19:33 +0000)]
Merge "Shard classloader classes lock" am:
dc148d2
am:
de389d2
* commit '
de389d22810bf367f40f388eb669fe29cada0718':
Shard classloader classes lock
Change-Id: I4ebd89a739197a4b838e671a320018544e70fed0
Mathieu Chartier [Wed, 6 Apr 2016 19:33:14 +0000 (19:33 +0000)]
Merge "Change RequiresConstructorBarrier default to yes" am:
1633881
am:
6e4bc28
* commit '
6e4bc286d4dbc09b4da172dcfeefb7d43cba2688':
Change RequiresConstructorBarrier default to yes
Change-Id: Ib13066110c865d3558ef04b22dee4176df1fba9a
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 18:49:03 +0000 (18:49 +0000)]
Merge "Shard classloader classes lock" into nyc-dev
am:
bdf6df1
* commit '
bdf6df1ef5ac0e2b5420a4b4d6a4c77758b0037d':
Shard classloader classes lock
Change-Id: Ia52fea5c1c2d47ef749271406bf408279a1e8840
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:42:12 +0000 (18:42 +0000)]
Merge "Shard classloader classes lock" into nyc-dev
Mathieu Chartier [Wed, 6 Apr 2016 18:40:25 +0000 (18:40 +0000)]
Merge "Change hash set to use noexcept" am:
d1bdb7c
am:
aee721b
* commit '
aee721bbd197e92397e318b2292a5db235103253':
Change hash set to use noexcept
Change-Id: I0475e324fa284995c0659587648fe0238a08958d
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:37:30 +0000 (18:37 +0000)]
Merge "Change RequiresConstructorBarrier default to yes" into nyc-dev
am:
d42c845
* commit '
d42c845ac0629c7b8c4d75233fa3df7b8844edec':
Change RequiresConstructorBarrier default to yes
Change-Id: Ie8350448d65aaf1fc4735c7ac30514d908f2d3a1
Mathieu Chartier [Wed, 6 Apr 2016 18:35:18 +0000 (18:35 +0000)]
Merge "Change hash set to use noexcept"
David Srbecky [Wed, 6 Apr 2016 18:34:45 +0000 (18:34 +0000)]
Merge "Fix thumb bit in the oatdump symbolizer." into nyc-dev
am:
07b2ad2
* commit '
07b2ad2b9d5002609adbdb2478e11ae86aaaabff':
Fix thumb bit in the oatdump symbolizer.
Change-Id: Iac9091db5ff0a5eb2c8d3650c0be90942b57f355
Mathieu Chartier [Wed, 6 Apr 2016 18:32:33 +0000 (18:32 +0000)]
Merge "Change RequiresConstructorBarrier default to yes" into nyc-dev
David Srbecky [Wed, 6 Apr 2016 18:27:31 +0000 (18:27 +0000)]
Merge "Fix thumb bit in the oatdump symbolizer." into nyc-dev
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
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
Change-Id: I6b2e5078e5a0d76317e5486cd5e4f04d995e7b56
Yi Kong [Wed, 6 Apr 2016 17:16:41 +0000 (17:16 +0000)]
Merge "Fix and re-enable compiler_driver_test" into nyc-dev
am:
96d4ff8
* commit '
96d4ff8d96da8949c98691953f4961fb9fd8f0d1':
Fix and re-enable compiler_driver_test
Change-Id: I97780950b5943cbdc5e0ffca88802d1b08f48628
Mathieu Chartier [Wed, 6 Apr 2016 17:16:41 +0000 (17:16 +0000)]
ART: Handle OOM in stack overflow
am:
cee1321
* commit '
cee1321190401800504e42a9ccfe5e681d6be119':
ART: Handle OOM in stack overflow
Change-Id: I34a795fc701af7b08225b40ec3153b7e9951edf5
Yi Kong [Wed, 6 Apr 2016 17:11:01 +0000 (17:11 +0000)]
Merge "Fix and re-enable compiler_driver_test" am:
0fb09f7
am:
7acef76
* commit '
7acef76ca2bc6a2b64a7059097b15f8ef7b0ff7e':
Fix and re-enable compiler_driver_test
Change-Id: I570566b14ebba9f799029841c4780148d2f87486
Yi Kong [Wed, 6 Apr 2016 17:09:34 +0000 (17:09 +0000)]
Merge "Fix and re-enable compiler_driver_test" into nyc-dev
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
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
(cherry picked from commit
5dcf19d402b4ea7023ced2afa8d615576fe2784f)
Mathieu Chartier [Wed, 6 Apr 2016 17:02:17 +0000 (17:02 +0000)]
Merge "ART: Handle OOM in stack overflow" am:
c28a0d7
am:
65512cb
* commit '
65512cb466e8a0f3822a4e686d7c876f745852ce':
ART: Handle OOM in stack overflow
Change-Id: I8ef863d10676ef220d847ce91230310a7f58c761
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
Mathieu Chartier [Wed, 6 Apr 2016 16:59:33 +0000 (16:59 +0000)]
Merge "Change hash set to use noexcept" into nyc-dev
am:
e4e3ae6
* commit '
e4e3ae671aa61ecd200ec7ac06a1d9fb9b4b0e2e':
Change hash set to use noexcept
Change-Id: I33d4a2a101613d5488c3f494c1f755c1ff794351
Yi Kong [Wed, 6 Apr 2016 16:59:02 +0000 (16:59 +0000)]
Merge "Fix and re-enable compiler_driver_test"
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
(cherry picked from commit
e8f3f03ce142d9cdb10a1bb6bbbb428d0e8b672f)
Change-Id: I96b9682c3eb6ad71140a062cb357d4334c7fdaa5
Mathieu Chartier [Wed, 6 Apr 2016 16:52:25 +0000 (16:52 +0000)]
Merge "Change hash set to use noexcept" into nyc-dev
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
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
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
Change-Id: I14c0836fd9ec7c9bf49d8186ff14a3c6830ff711
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
Change-Id: I2ece57e81349316c2f8ba0a57bda6f342faf3f3b
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
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
Change-Id: I075c1b11f3408f5b31e4f84140a24fd8d3eaa17e
Andreas Gampe [Wed, 6 Apr 2016 01:30:01 +0000 (01:30 +0000)]
Merge "ART: Add arraycopy(byte) to unstarted runtime" am:
5827507
am:
f4ee62b
* commit '
f4ee62b27592615abdc5ad6aba0ccbf2d46f9662':
ART: Add arraycopy(byte) to unstarted runtime
Change-Id: Ie3fac4ef0589b2bd91f50f83d6be967534140a86
Andreas Gampe [Wed, 6 Apr 2016 01:26:34 +0000 (01:26 +0000)]
Merge "ART: Add arraycopy(byte) to unstarted runtime"
am:
5827507
* commit '
5827507da8efdaf4536c70dfdc54407c28e37852':
ART: Add arraycopy(byte) to unstarted runtime
Change-Id: Ib3b727c1d717e83739943639dcb02c3885a17f85
Andreas Gampe [Wed, 6 Apr 2016 01:18:15 +0000 (01:18 +0000)]
Merge "ART: Add arraycopy(byte) to unstarted runtime"
Andreas Gampe [Tue, 5 Apr 2016 21:16:10 +0000 (14:16 -0700)]
ART: Add arraycopy(byte) to unstarted runtime
The byte-array version is now in use in libcore.
Allows to compile-time initialize:
* java.security.cert.X509CertSelector
* sun.security.pkcs.PKCS9Attribute
* sun.security.provider.certpath.AdaptableX509CertSelector
* sun.security.x509.AccessDescription
* sun.security.x509.AlgorithmId
* sun.security.x509.ExtendedKeyUsageExtension
* sun.security.x509.NetscapeCertTypeExtension
* sun.security.x509.OIDMap
* sun.security.x509.PKIXExtensions
Bug:
27265238
(cherry picked from commit
cc44581beacd61a633b02a1223d1bf6fea278f94)
Change-Id: If6b680a455809152c9bd7a679a8ab430936c46a1
Andreas Gampe [Tue, 5 Apr 2016 23:18:11 +0000 (23:18 +0000)]
Merge "ART: Add arraycopy(byte) to unstarted runtime" into nyc-dev
am:
53b21d0
* commit '
53b21d03e3ef7fe0c9594c024a4e98e561ab3032':
ART: Add arraycopy(byte) to unstarted runtime
Change-Id: I49d18725a37df414c8fb3e86638a98e6becaa09d
Andreas Gampe [Tue, 5 Apr 2016 23:11:13 +0000 (23:11 +0000)]
Merge "ART: Don\'t attempt write flock if not zygote" am:
224b7f3
am:
0ce4ac5
* commit '
0ce4ac5a1886315fd9da992bfeae82b595e75ae3':
ART: Don't attempt write flock if not zygote
Change-Id: I1f07cfdb56c91884b1f4a23cd1fc4277f713429b
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
Change-Id: If7c13e8775f0912e104d1382eacdba7e7edf6818
Andreas Gampe [Tue, 5 Apr 2016 23:07:45 +0000 (23:07 +0000)]
Merge "ART: Don\'t attempt write flock if not zygote"
am:
224b7f3
* commit '
224b7f346d8e13ef7b19d72671d687cad34f63eb':
ART: Don't attempt write flock if not zygote
Change-Id: I2e3aacde20d96b7c2b5ace695185d005d8320784