OSDN Git Service
Calin Juravle [Thu, 24 Mar 2016 20:33:22 +0000 (20:33 +0000)]
Discard corrupted or out of date profiles
Until now we bailed out if the previous profile contained invalid data.
This CLs forces the save and clears any data in a profile that has the
wrong version or contains bad data.
Bug:
27081617
(cherry picked from commit
fe297a96bc6d3da11579709add9b4568730d2b4f)
Change-Id: I9184e0483ea0a869d7aa92630acd6fa04a9d2e03
Calin Juravle [Thu, 24 Mar 2016 16:16:34 +0000 (16:16 +0000)]
Extend profman to be able to dump profile content.
With the move to binary format it gets harder to debug profiles. This
adds a simple dumping mechanism to make profiles human readable.
Bug:
27600652
(cherry picked from commit
54196728c25421e72d0009cac4c3145a0da18a58)
Change-Id: I73148fe9e24f30089e9f0fb383e9f6f6c61a46e5
Calin Juravle [Mon, 21 Mar 2016 14:37:55 +0000 (14:37 +0000)]
Update and improve profiles format
- add profile version in the header
- change the profile format to a binary format (saves more than 50% of
space)
- improve error handling during parsing
- improve corner cases handling (all methods/classes in the
file)
- improve error reporting
Bug:
27600652
Bug:
27081617
(cherry picked from commit
b8697b15145834c9861bebfb03daa745ecbe53e8)
Change-Id: Ia0a30e839eb11ada212bede34e4a2d556674219d
Calin Juravle [Fri, 18 Mar 2016 16:23:40 +0000 (16:23 +0000)]
Improve ProfileSaver to cache data and do minimal I/O
This CLs introducing caching to further optimize the I/O performed by
the ProfileSaver. The cache stats are also recorded.
Resolved classes are captured and cached after 2 seconds but written
later during application lifetime.
Methods are also cached and the write got smarter to avoid
reading/writing them if it's not needed.
On non scientific experiments the size of the cache reaches just a few
hundreds uint16_t values kept in set, so its impact is minimal.
In terms of how much data we write. In the same non scientific
experiments this reduces the total bytes written by at least 2-3x. In
the first few minutes of after the boot gmscore writes ~3KB (down from
9kb) and quicksearchlauncher writes ~20KB (down from 40KB).
Bug:
27600652
(cherry picked from commit
85f7bf3bbfa17d65ff77e3e826b5f7aff45838a9)
Change-Id: I6ecb04ce81b281d1c1538060dbbaeeeb08906775
Calin Juravle [Thu, 17 Mar 2016 17:07:52 +0000 (17:07 +0000)]
Improve resolved classes saving strategy
If we already have a non empty profile file it means that we already
saved once the resolved classes. So there's no need to hurry up and
start the profile saver eagerly after 2s.
Bug:
27600652
(cherry picked from commit
c15e566b36170237f01ccefc12129c1578a02140)
Change-Id: Iecc730c25eab779efccbbde66432dbbc61192e8a
Calin Juravle [Wed, 9 Mar 2016 15:37:48 +0000 (15:37 +0000)]
Add ProfileSaver stats and dump them during SigQuit
Bug:
27516906
(cherry picked from commit
c19c1c2e1def1f4f5ab5fd9e71b1a6f76d42988f)
Change-Id: I7d2b1091c3523805ef0f87df42feed1098678aad
Calin Juravle [Mon, 14 Mar 2016 17:32:49 +0000 (17:32 +0000)]
Don't be so agressive in quering the code cache for new methods
Interim fix for apps which JIT a lot and trigger a lot of I/O because of
profile data (e.g. gmscore).
This reduces the amount of data re-written to disk by a few order of
magnitude. (e.g. 43k instead of 3.5MB)
Proper fix which will make the writing smarter is coming.
Bug:
27600652
(cherry picked from commit
815759a8194fc94c9d9e6e081c99bee38792ba91)
Change-Id: I28c14369ba6728acb42d4de7cb65df39791fb2a1
Tobias Thierer [Fri, 22 Apr 2016 10:05:19 +0000 (10:05 +0000)]
Merge "Avoid redundant Long allocation before unboxing"
Treehugger Robot [Fri, 22 Apr 2016 00:59:59 +0000 (00:59 +0000)]
Merge "ART: Disable unstarted runtime pow test for valgrind"
Andreas Gampe [Fri, 22 Apr 2016 00:23:31 +0000 (17:23 -0700)]
ART: Disable unstarted runtime pow test for valgrind
Valgrind seems to give the wrong result. Disable test for now.
Change-Id: I2b136abc107b53d89b70ccb20dd378a7b704d077
Alex Light [Thu, 21 Apr 2016 21:35:00 +0000 (21:35 +0000)]
Merge "Make dex file loading failure more explicit about failure."
Hiroshi Yamauchi [Thu, 21 Apr 2016 19:49:06 +0000 (19:49 +0000)]
Merge "Revert "Revert "Assembly TLAB and RegionTLAB allocation fast path for x86"""
Aart Bik [Thu, 21 Apr 2016 19:36:23 +0000 (19:36 +0000)]
Merge "X86/X86_64: Switch to locked add from mfence"
Mathieu Chartier [Thu, 21 Apr 2016 19:14:07 +0000 (19:14 +0000)]
Merge "Fix heap check."
Mathieu Chartier [Thu, 21 Apr 2016 17:23:16 +0000 (10:23 -0700)]
Fix heap check.
Previously, we only checked the image we were patching. This did not
work if the referent was in another image. Fixed the DCHECK to check
all the boot images.
Bug:
28286961
(cherry picked from commit
488849c584337a1aae8413a1d1e0fad8043bf672)
Change-Id: If2e8e48b500935d0969e8673816d28218888bd13
David Brazdil [Thu, 21 Apr 2016 14:58:40 +0000 (14:58 +0000)]
Merge "ART: Address late comments on a GVN memory-saving CL"
David Brazdil [Thu, 21 Apr 2016 13:00:15 +0000 (14:00 +0100)]
ART: Address late comments on a GVN memory-saving CL
Added extra comments and removed redundant code as requested.
Bug:
28173563
Bug:
28287086
Change-Id: If6aff68c4c30427a86a27ffba5df1ae135edd294
Vladimir Marko [Thu, 21 Apr 2016 14:40:22 +0000 (14:40 +0000)]
Merge "Thumb2: Fix disassembly of the b.w offset."
Vladimir Marko [Thu, 21 Apr 2016 13:52:03 +0000 (14:52 +0100)]
Thumb2: Fix disassembly of the b.w offset.
Bug:
28311085
Change-Id: If729af888be65e1f24362b9c4ed79f124446024d
Tobias Thierer [Thu, 21 Apr 2016 13:45:43 +0000 (14:45 +0100)]
Avoid redundant Long allocation before unboxing
long x = Long.valueOf(s) --> Long.parseLong()
Bug:
28289401
Change-Id: I0a6766d44a522b6dd5c7afc5e81ebe135103315e
David Brazdil [Thu, 21 Apr 2016 11:15:43 +0000 (11:15 +0000)]
Merge "Reduce memory usage in GVN"
David Brazdil [Wed, 20 Apr 2016 13:24:12 +0000 (14:24 +0100)]
Reduce memory usage in GVN
Implement recycling of ValueSet data structures which the GVN
algorithm will not access any more.
Savings depend on the shape of the graph, but can be as high as 93%.
Peak memory usage for GSA drops from 32MB to 26MB, compile times seem
unaffected.
Bug:
28173563
Bug:
28287086
Change-Id: If227177449bc90ad24fa68c37b0c2615924af1ed
Sang, Chunlei [Thu, 21 Apr 2016 02:22:02 +0000 (10:22 +0800)]
Revert "Revert "Assembly TLAB and RegionTLAB allocation fast path for x86""
This reverts commit
0cd1bf7a68bf39867b8d229a6afeb6b2c66b7acd.
Change-Id: I79cae41c110343bbc1537063e1140484f2769ca2
Hiroshi Yamauchi [Thu, 21 Apr 2016 00:42:14 +0000 (00:42 +0000)]
Merge "Revert "Assembly TLAB and RegionTLAB allocation fast path for x86""
Hiroshi Yamauchi [Wed, 20 Apr 2016 23:51:25 +0000 (23:51 +0000)]
Revert "Assembly TLAB and RegionTLAB allocation fast path for x86"
This reverts commit
84ed7d06d5585611a067491243ab560fe5260cae.
This breaks the mac build.
Change-Id: I90ea0872073135c8ff2089e05b8b16985ef95773
Hiroshi Yamauchi [Wed, 20 Apr 2016 23:14:16 +0000 (23:14 +0000)]
Merge "Assembly TLAB and RegionTLAB allocation fast path for x86"
Alex Light [Wed, 20 Apr 2016 21:26:34 +0000 (14:26 -0700)]
Make dex file loading failure more explicit about failure.
We make sure that if we fail to load a dex file due to having an
unsupported dex version number we will say so explicitly in the
exceptions.
Bug:
28269864
Change-Id: I3c61d088cd0d04cf2a02246e69a4161180e3f2d8
Andreas Gampe [Wed, 20 Apr 2016 21:26:53 +0000 (21:26 +0000)]
Merge "ART: Change x86 from modify_ldt to set_thread_data"
Treehugger Robot [Wed, 20 Apr 2016 19:47:50 +0000 (19:47 +0000)]
Merge changes I0360a078,I3e267519
* changes:
ART: Add Math cutouts
ART: Add some reflection cutouts
Vladimir Marko [Wed, 20 Apr 2016 18:42:26 +0000 (18:42 +0000)]
Merge "Fix HInstruction::ReplaceInput(), allow no-op."
Vladimir Marko [Wed, 20 Apr 2016 17:45:25 +0000 (18:45 +0100)]
Fix HInstruction::ReplaceInput(), allow no-op.
Allow HInstruction::ReplaceInput() to be called with
a `replacement` being the same as the old input and
do nothing in that case.
This is a follow-up to
https://android-review.googlesource.com/216923
where I erroneously assumed that it never happens.
Also adhere to the standard C++ std::forward_list<>
semantics in the single-element overload of
`IntrusiveForwardList<>::splice_after()`.
Bug:
28173563
Change-Id: I5cea14c212b1083f90ffe6b5b53324ad663d57d8
Mathieu Chartier [Wed, 20 Apr 2016 18:22:24 +0000 (18:22 +0000)]
Merge "Do less work holding thread list lock"
Hiroshi Yamauchi [Wed, 20 Apr 2016 17:37:38 +0000 (17:37 +0000)]
Merge changes Ic40833d3,I8f286987
* changes:
Revert "Disable JDWP tests with read barriers."
Fix a deadlock between debugger and GC.
Andreas Gampe [Tue, 19 Apr 2016 03:51:13 +0000 (20:51 -0700)]
ART: Add Math cutouts
Add sin, cos and pow to unstarted runtime. Add tests for some
very specific values that are seen.
Allows to compile-time initialize:
* android.graphics.drawable.RippleForeground
* android.widget.EdgeEffect
Bug:
27265238
(cherry picked from commit
8c5889a3bdefd7dc84494ec824d495913f2362a9)
Change-Id: I0360a078e7dc9d2a176ec1cf2d8dbb242da1c83e
Andreas Gampe [Tue, 19 Apr 2016 00:07:30 +0000 (17:07 -0700)]
ART: Add some reflection cutouts
Add Class.getInnerClassFlags and Method.invoke to unstarted runtime.
Allows to compile-time initialize:
* android.net.NetworkInfo
* android.net.wifi.WifiInfo
Bug:
27265238
(cherry picked from commit
b3ffbe32b78c18739736fc998d65430b46c510e5)
Change-Id: I3e267519acf14b08c687f1e831e2027d37158767
Mathieu Chartier [Tue, 19 Apr 2016 20:46:03 +0000 (13:46 -0700)]
Do less work holding thread list lock
Avoid doing stuff that requires access java heap like PrettyMethod.
Fixes lock violation.
Bug:
28268478
(cherry picked from commit
dee19e3caaeb5666055842d656dc0516b901f30c)
Change-Id: Ie090879690df7a6db15a9c8b7e82f3809450d653
Vladimir Marko [Wed, 20 Apr 2016 14:43:54 +0000 (14:43 +0000)]
Merge "Fix RTP to hold mutator lock while using raw mirror pointers."
Vladimir Marko [Wed, 20 Apr 2016 14:36:50 +0000 (14:36 +0000)]
Merge "Thumb2: Fix EmitJumpTables() to extend buffer only if needed."
Vladimir Marko [Wed, 20 Apr 2016 14:06:31 +0000 (15:06 +0100)]
Fix RTP to hold mutator lock while using raw mirror pointers.
ReferenceTypePropagation::RTPVisitor::SetClassAsTypeInfo()
is taking a raw mirror::Class* parameter, so it must be
marked with SHARED_REQUIRES(Locks::mutator_lock_). The
omission of this annotation allowed
https://android-review.googlesource.com/216926
to compile despite using GC-unsafe raw mirror pointers in
UpdateFieldAccessTypeInfo(). This led to test failures in
the debug-GC mode.
Change-Id: I2a743070c642e7a611480e5d495af44f0945e43f
Vladimir Marko [Wed, 20 Apr 2016 13:39:47 +0000 (14:39 +0100)]
Thumb2: Fix EmitJumpTables() to extend buffer only if needed.
Bug:
28256882
Change-Id: I15227535c0fcb73c04b0b05160852c4b1bebee49
Vladimir Marko [Wed, 20 Apr 2016 11:52:24 +0000 (11:52 +0000)]
Merge "Reuse HUseListNode<>s when replacing instruction or input."
Vladimir Marko [Wed, 20 Apr 2016 10:27:15 +0000 (10:27 +0000)]
Merge "Fix reference_type_propagation_test."
Vladimir Marko [Wed, 20 Apr 2016 10:22:16 +0000 (11:22 +0100)]
Fix reference_type_propagation_test.
Bug:
28210356
Change-Id: I472bbdc48d3959a374d4bf21a921ca57007a96f0
Vladimir Marko [Wed, 20 Apr 2016 09:06:47 +0000 (09:06 +0000)]
Merge "Revert "Increase timeout for the 570-checker-osr test from 20s to 60s.""
Vladimir Marko [Wed, 20 Apr 2016 09:06:08 +0000 (09:06 +0000)]
Revert "Increase timeout for the 570-checker-osr test from 20s to 60s."
The timeout was an actual test failure, fixed by
https://android-review.googlesource.com/217041
Bug:
28210356
This reverts commit
d676227d8fcef3c3d34f1a7a44141b4f5f2e8519.
Change-Id: If69e09f3650f87cd4e6e22bb28a7b807be3094e1
Vladimir Marko [Wed, 20 Apr 2016 09:00:49 +0000 (09:00 +0000)]
Merge "Revert "Revert "Use dex cache from compilation unit in RTP."""
Andreas Gampe [Wed, 20 Apr 2016 04:39:14 +0000 (04:39 +0000)]
Merge "ART: Remove Security initialization cutout"
Sang, Chunlei [Wed, 20 Apr 2016 00:40:18 +0000 (08:40 +0800)]
Assembly TLAB and RegionTLAB allocation fast path for x86
Change-Id: I63471cb1d7be5e5bb42faf782a0ebae46a9094ec
Andreas Gampe [Sat, 16 Apr 2016 04:21:38 +0000 (21:21 -0700)]
ART: Remove Security initialization cutout
Change
c94eeebc7cf3e577eed3ea380401007aea642bf3 introduced general
support for getResourceAsStream. Remove the specialized cutout.
Bug:
27265238
(cherry picked from commit
0f9b07f9781a064cbd59afbce3a03e8ae07a3117)
Change-Id: I3aad0053199809e11de4eed8ee6aac53346d3d22
Aart Bik [Tue, 19 Apr 2016 23:12:46 +0000 (23:12 +0000)]
Merge "Do not use EXPECT_DEATH in unit test, fails on device."
Aart Bik [Tue, 19 Apr 2016 22:07:23 +0000 (15:07 -0700)]
Do not use EXPECT_DEATH in unit test, fails on device.
Change-Id: I77ff843edb416fae72e7bbf66a6151405dab81b0
Vladimir Marko [Tue, 19 Apr 2016 13:36:35 +0000 (14:36 +0100)]
Reuse HUseListNode<>s when replacing instruction or input.
Compiling the Nexus 5 boot image with the 64-bit dex2oat
on host this CL reduces the memory used for compiling the
most hungry method, BatteryStats.dumpLocked(), by ~5.6MiB:
Before:
MEM: used:
44393040, allocated:
45361248, lost: 968208
Number of arenas allocated: 319,
Number of allocations: 815492, avg size: 54
...
UseListNode
10308480
...
After:
MEM: used:
38554536, allocated:
39463008, lost: 908472
Number of arenas allocated: 274,
Number of allocations: 572221, avg size: 67
...
UseListNode
4469976
...
With 32-bit dex2oat, the UseListNode would be 2/3 of the
values for 64-bit dex2oat (both before and after).
Bug:
28173563
Change-Id: Ia4fabe03568f0e0dbf2cdf2b031863602aea3530
Vladimir Marko [Tue, 19 Apr 2016 18:26:22 +0000 (18:26 +0000)]
Merge "Use iterators "before" the use node in HUserRecord<>."
Vladimir Marko [Tue, 19 Apr 2016 14:12:13 +0000 (14:12 +0000)]
Revert "Revert "Use dex cache from compilation unit in RTP.""
The exposed issue has been fixed by
https://android-review.googlesource.com/215877
Bug:
28210356
This reverts commit
34d9b04d8d0006967486c0ad1b221e7b632652af.
Change-Id: I5288c923e45d9ef3190dabb89738350a1212a60d
Hiroshi Yamauchi [Tue, 19 Apr 2016 18:23:15 +0000 (11:23 -0700)]
Revert "Disable JDWP tests with read barriers."
This reverts commit
f2a5c9c5669664ad008ed48f511e8f101d4bc299.
Bug:
25800335
Hiroshi Yamauchi [Tue, 19 Apr 2016 18:14:06 +0000 (11:14 -0700)]
Fix a deadlock between debugger and GC.
Avoid a deadlock between GC and debugger's SuspendAllForDebugger where
GC gets suspended during GC.
Fix the jdwp tests with the CC collector, but the deadlock is NOT
specific to the CC collector.
Bug:
25800335
Bug:
12687968
Change-Id: I8f2869872bce4692d943020072e35ebf5a4e68a5
Hiroshi Yamauchi [Tue, 19 Apr 2016 17:44:07 +0000 (17:44 +0000)]
Merge "Fix a DCHECK failure in Arm64RelativePatcher with read barrier."
Vladimir Marko [Tue, 19 Apr 2016 17:35:18 +0000 (17:35 +0000)]
Merge "Fix 570-checker-osr test for non-debuggable mode."
Vladimir Marko [Tue, 29 Mar 2016 11:21:58 +0000 (12:21 +0100)]
Use iterators "before" the use node in HUserRecord<>.
Create a new template class IntrusiveForwardList<> that
mimicks std::forward_list<> except that all allocations
are handled externally. This is essentially the same as
boost::intrusive::slist<> but since we're not using Boost
we have to reinvent the wheel.
Use the new container to replace the HUseList and use the
iterators to "before" use nodes in HUserRecord<> to avoid
the extra pointer to the previous node which was used
exclusively for removing nodes from the list. This reduces
the size of the HUseListNode by 25%, 32B to 24B in 64-bit
compiler, 16B to 12B in 32-bit compiler. This translates
directly to overall memory savings for the 64-bit compiler
but due to rounding up of the arena allocations to 8B, we
do not get any improvement in the 32-bit compiler.
Compiling the Nexus 5 boot image with the 64-bit dex2oat
on host this CL reduces the memory used for compiling the
most hungry method, BatteryStats.dumpLocked(), by ~3.3MiB:
Before:
MEM: used:
47829200, allocated:
48769120, lost: 939920
Number of arenas allocated: 345,
Number of allocations: 815492, avg size: 58
...
UseListNode
13744640
...
After:
MEM: used:
44393040, allocated:
45361248, lost: 968208
Number of arenas allocated: 319,
Number of allocations: 815492, avg size: 54
...
UseListNode
10308480
...
Note that while we do not ship the 64-bit dex2oat to the
device, the JIT compilation for 64-bit processes is using
the 64-bit libart-compiler.
Bug:
28173563
Change-Id: I985eabd4816f845372d8aaa825a1489cf9569208
Vladimir Marko [Tue, 19 Apr 2016 16:26:54 +0000 (17:26 +0100)]
Fix 570-checker-osr test for non-debuggable mode.
For non-debuggable mode, we need to create profiling info.
Bug:
28210356
Change-Id: I3c2e1f7a7b447d44ca12382fe5f5a93e3dc83cab
Aart Bik [Tue, 19 Apr 2016 16:21:46 +0000 (16:21 +0000)]
Merge "Avoid constructing types with errors."
Andreas Gampe [Tue, 19 Apr 2016 15:30:54 +0000 (15:30 +0000)]
Merge "ART: Fast-fail empty other handlers in fault handling"
Vladimir Marko [Tue, 19 Apr 2016 15:18:30 +0000 (15:18 +0000)]
Merge "Increase timeout for the 570-checker-osr test from 20s to 60s."
Vladimir Marko [Tue, 19 Apr 2016 15:10:21 +0000 (16:10 +0100)]
Increase timeout for the 570-checker-osr test from 20s to 60s.
We have added new tests to the 570-checker-osr test in
https://android-review.googlesource.com/215877
without increasing the timeout and we're seeing a timeout
on the build bot but not locally.
Bug:
28210356
Change-Id: I52160e617772857c62c7cbb7de6cbb5c23c02a66
Vladimir Marko [Tue, 19 Apr 2016 13:54:10 +0000 (13:54 +0000)]
Merge "Fix inlining loops in OSR mode."
Vladimir Marko [Mon, 18 Apr 2016 14:37:01 +0000 (15:37 +0100)]
Fix inlining loops in OSR mode.
When compiling a method in OSR mode and the method does not
contain a loop (arguably, a very odd case) but we inline
another method with a loop and then the final DCE re-runs
the loop identification, the inlined loop would previously
be marked as irreducible. However, the SSA liveness analysis
expects irreducible loop to have extra loop Phis which were
already eliminated from the loop before the inner graph was
inlined to the outer graph, so we would fail a DCHECK().
We fix this by not marking inlined loops as irreducible when
compiling in OSR mode.
Bug:
28210356
Change-Id: If10057ed883333c62a878ed2ae3fe01bb5280e33
Vladimir Marko [Tue, 19 Apr 2016 10:38:44 +0000 (10:38 +0000)]
Merge "Initialize a variable to suppress compiler error"
Goran Jakovljevic [Tue, 19 Apr 2016 08:27:21 +0000 (10:27 +0200)]
Initialize a variable to suppress compiler error
GCC (mips32 Buildbot) is complaining about the possibility of
uninitialized usage.
Change-Id: I217aa371189e06bed498288bf40e85406806c5ff
David Brazdil [Tue, 19 Apr 2016 09:25:09 +0000 (09:25 +0000)]
Merge "ART: Fix IsLinearOrderWellFormed in liveness analysis"
David Brazdil [Tue, 19 Apr 2016 09:10:17 +0000 (10:10 +0100)]
ART: Fix IsLinearOrderWellFormed in liveness analysis
Graph may contain nullptr in list of basic blocks when
the basic block is removed. So we must handle nullptr explicitly.
Bug:
28252537
Change-Id: If430939b8fe793e4a9c974936180d06c1a9f90c6
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Aart Bik [Wed, 6 Apr 2016 18:22:12 +0000 (11:22 -0700)]
Avoid constructing types with errors.
BUG=
27626735
Rationale:
Do not construct classes with a link error. Without this,
the error type thought it was Object (mirror's method
IsObjectClass() returns true if there is no superclass).
Change-Id: I55ca8cc8cfc042210edf748aab10da4c6e345980
Andreas Gampe [Tue, 19 Apr 2016 00:49:44 +0000 (00:49 +0000)]
Merge changes I0f164a7d,I8c408aa6
* changes:
ART: Add cutout for Character.toLower/UpperCase
ART: Add ClassLoader.getResourceAsStream cutout
Andreas Gampe [Sat, 16 Apr 2016 04:24:28 +0000 (21:24 -0700)]
ART: Add cutout for Character.toLower/UpperCase
Add support for ASCII codepoint toLowerCase/toUpperCase. Those
inputs are easy, and generally sufficient.
Allows to compile-time initialize:
* android.text.Html$HtmlParser
* java.util.UUID$Holder
* sun.security.ec.ECKeyFactory
Bug:
27265238
(cherry picked from commit
0bdce99fcecdadcbafc8e7a9bb92f491a4f37b2a)
Change-Id: I0f164a7df4f26c0b266cef230e36f6ca3af20bde
Andreas Gampe [Thu, 14 Apr 2016 00:58:05 +0000 (17:58 -0700)]
ART: Add ClassLoader.getResourceAsStream cutout
Add support for getResourceAsStream to unstarted runtime.
Allows to compile-time initialize:
* android.icu.impl.ICUConfig
Allows to revert other resource loading hacks.
Do not intercept Class.getResourceAsStream directly. There is
name-mangling involved, leave that on the Java side.
Bug:
27265238
(cherry picked from commit
c94eeebc7cf3e577eed3ea380401007aea642bf3)
Change-Id: I8c408aa633086f4a1aa14bb1b404607b2498fe97
Andreas Gampe [Tue, 19 Apr 2016 00:15:42 +0000 (17:15 -0700)]
ART: Fast-fail empty other handlers in fault handling
Don't try to set up the nested handler environment if there are
no other handlers installed.
Stop-gap for the current setup without other handlers. There are
a myriad more issues before we can safely re-enable other handlers.
Bug:
28245957
Change-Id: I526aef82aa1ca2b6c4b1959858fe76231bc067d9
Mathieu Chartier [Mon, 18 Apr 2016 23:18:29 +0000 (23:18 +0000)]
Merge changes from topic 'monitor_lock'
* changes:
Prevent holding stale Thread pointers
Add more info to monitor contention logging
Hiroshi Yamauchi [Mon, 18 Apr 2016 23:05:21 +0000 (16:05 -0700)]
Fix a DCHECK failure in Arm64RelativePatcher with read barrier.
We could encounter an add immediate with
LinkerPatch::Type::kDexCacheArray for the
HLoadString::LoadKind::kDexCachePcRelative case of VisitLoadString if
the non-baker read barrier is enabled.
Bug:
28249352
Bug:
12687968
Change-Id: I226bea26f6a614cfabb0307805de7cedb3b54a7f
Mathieu Chartier [Mon, 18 Apr 2016 18:43:29 +0000 (11:43 -0700)]
Prevent holding stale Thread pointers
It is only really safe to hold non-self Thread* if you hold the
thread list lock. Changed a few places to use thread ids instead
of Thread.
Bug:
28223501
(cherry picked from commit
81c170fede9af9174aba71428334ac8f366a4b4f)
Change-Id: I15e50b699303a5c3739e4d19c153dd306e2ee504
Mathieu Chartier [Sat, 16 Apr 2016 02:11:45 +0000 (19:11 -0700)]
Add more info to monitor contention logging
Print owner thread name and tid. Print blocking file name and line
number.
Bug:
28223501
(cherry picked from commit
dc3c630ffdb3487bc46d878bf89c886f8ee69ef3)
Change-Id: I8777837df1433462878f29842f0aede330dd46c0
Nicolas Geoffray [Mon, 18 Apr 2016 12:23:17 +0000 (12:23 +0000)]
Merge "Fix interaction between instrumentation and jit lock."
Nicolas Geoffray [Mon, 18 Apr 2016 11:09:30 +0000 (12:09 +0100)]
Fix interaction between instrumentation and jit lock.
The jit lock needs to have higher priority than the
deoptimized methods lock.
bug:
28236735
Change-Id: I82862b8bfc82a5641156290926c04c80b1371534
Yi Kong [Mon, 18 Apr 2016 09:57:23 +0000 (09:57 +0000)]
Merge "Increase vtable size for String class"
Nicolas Geoffray [Mon, 18 Apr 2016 08:17:48 +0000 (08:17 +0000)]
Merge "Add weight to compiled/interpreter transitions."
Andreas Gampe [Sat, 16 Apr 2016 03:43:14 +0000 (03:43 +0000)]
Merge "ART: Add a System.getProperty cutout"
Andreas Gampe [Wed, 13 Apr 2016 21:53:23 +0000 (14:53 -0700)]
ART: Add a System.getProperty cutout
Add support for certain keys of System.getProperty, derived
from AndroidHardcodedSystemProperties.
Allows to compile-time initialize:
* android.icu.impl.Utility
* java.net.URLDecoder
* java.net.URLEncoder
* java.util.regex.PatternSyntaxException
Bug:
27265238
Bug:
28174137
(cherry picked from commit
7107be612db6b15921b602ac9a3f24e9c2e7d414)
Change-Id: Ib919fb05f0459be19331ac356af34a968bf685cd
Andreas Gampe [Sat, 16 Apr 2016 01:32:29 +0000 (01:32 +0000)]
Merge "ART: Fix nits for verifier change"
Andreas Gampe [Fri, 15 Apr 2016 17:09:16 +0000 (10:09 -0700)]
ART: Fix nits for verifier change
Follow-up to
6659624baadf2285ac5880fd28ffa31767dcae0b.
Bug:
28187158
Change-Id: Ie81aff1cae1ff275faaaf4b858608e74b86d8622
Yi Kong [Tue, 12 Apr 2016 21:38:06 +0000 (22:38 +0100)]
Increase vtable size for String class
Tracks libcore change
5458546631c65f6d375b6a1780d36d0abb5b95af which
increases vtable size for String by four.
Bug:
28108421
Change-Id: I3f7b373ffc08a0f5351f04b5045866ea040f8e6e
Richard Uhler [Fri, 15 Apr 2016 21:03:59 +0000 (21:03 +0000)]
Merge "Disable stripped-dex test for no-dex2oat."
Richard Uhler [Fri, 15 Apr 2016 19:16:45 +0000 (12:16 -0700)]
Disable stripped-dex test for no-dex2oat.
Because the stripped-dex test requires a prebuild configuration.
Bug:
27599626
Change-Id: Id94e76057201c8fb26b68d7123469cf4c61464e4
Aart Bik [Fri, 15 Apr 2016 19:04:13 +0000 (19:04 +0000)]
Merge "Remove the no-longer-needed F/I and D/J alias."
Roland Levillain [Fri, 15 Apr 2016 18:55:20 +0000 (18:55 +0000)]
Merge "Fix: correctly destruct VIXL labels."
Aart Bik [Wed, 13 Apr 2016 23:41:35 +0000 (16:41 -0700)]
Remove the no-longer-needed F/I and D/J alias.
Rationale:
Now that our HIR is type clean (yeah!), we no longer have
to conservatively assume F/I and D/J are aliased. This
enables more accurate side effects analysis, with improvements
in all clients, such a LICM.
Refinement:
The HIR is not completely clean between building and SSA.
This refinement takes care of that, with new tests.
BUG=
22538329
Change-Id: Id78ff0ff4e325aeebf0022d868937cff73d3a742
Mingyao Yang [Fri, 15 Apr 2016 17:30:05 +0000 (17:30 +0000)]
Merge "Enable allocation elimination as part of LSE"
Narayan Kamath [Fri, 15 Apr 2016 17:25:28 +0000 (17:25 +0000)]
Merge "OpenJdkJVM: Fix Mac OS build."
Bill Buzbee [Fri, 15 Apr 2016 17:09:07 +0000 (17:09 +0000)]
Merge "Revert "Revert "ART: Improve JitProfile perf in x86_64 mterp"""
Nicolas Geoffray [Fri, 15 Apr 2016 17:01:25 +0000 (17:01 +0000)]
Merge "Revert "Use dex cache from compilation unit in RTP.""
Nicolas Geoffray [Fri, 15 Apr 2016 17:01:11 +0000 (17:01 +0000)]
Revert "Use dex cache from compilation unit in RTP."
bug:
28210356
This reverts commit
27bb86edf60e2f9ca2c1075c0c86b9e79374f1d0.
Change-Id: Ib27ee90a7e4d516fd2db67a9c4e454023737841a
Narayan Kamath [Fri, 15 Apr 2016 16:51:55 +0000 (17:51 +0100)]
OpenJdkJVM: Fix Mac OS build.
bug:
28192631
Change-Id: I423d5e79aacfbe82e22d095ffbfd3eefedbb484b
Narayan Kamath [Fri, 15 Apr 2016 16:30:17 +0000 (16:30 +0000)]
Merge "OpenJdkJVM: Fix JVM_Lseek"