OSDN Git Service
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"
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 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"
Mingyao Yang [Wed, 2 Mar 2016 18:15:36 +0000 (10:15 -0800)]
Enable allocation elimination as part of LSE
After load-store elimination, an allocation may not be used any more
and may be eliminated.
Change-Id: I7fcaaefa9d6ec2c611e46119c5799293770a917c
Bill Buzbee [Mon, 4 Apr 2016 16:59:35 +0000 (16:59 +0000)]
Revert "Revert "ART: Improve JitProfile perf in x86_64 mterp""
Bug: 215853
Bug triggering original revert fixed by:
https://android-review.googlesource.com/#/c/214728
This CL additionally corrects a secondary bug in argument setup
appearing in both x86 and x86_64 versions.
This reverts commit
0402c5690b1a961e923a39dab92ec1ee0b54b05a.
Change-Id: If86a5d43469d8a958e007acc0afe924330de5c16
Narayan Kamath [Fri, 15 Apr 2016 14:57:28 +0000 (15:57 +0100)]
OpenJdkJVM: Fix JVM_Lseek
Use lseek64 and remove unnecessary TEMP_FAILURE_RETRY.
bug:
28192631
Change-Id: Ic27aa6c03122b29d53e75ead56870a8cb7867fd3
Nicolas Geoffray [Thu, 14 Apr 2016 14:00:33 +0000 (15:00 +0100)]
Add weight to compiled/interpreter transitions.
Also:
- Cleanup logging.
- Check ArtMethod status before adding compilation requests.
- Don't request osr compilation if we know AddSamples does not come
from a back edge.
Bug:
27865109
Change-Id: I84512f7d957b61ce2458360ed430adb151830278
Narayan Kamath [Fri, 15 Apr 2016 14:31:00 +0000 (14:31 +0000)]
Merge "Track removal of String hash functions."
Narayan Kamath [Wed, 13 Apr 2016 13:17:44 +0000 (14:17 +0100)]
Track removal of String hash functions.
The number of virtual methods dropped by one. The change to the
field counting merits some explanation, with the change to OpenJDK
we got rid of two 16 bit fields and added a 32 bit field (which the
companion change removed), so things continued to work happily.
This change brings the number of 16 bit fields down to zero.
Also fixes 100-reflect2, which iterates over all methods in j.l.String.
bug:
28082128
Change-Id: If402a372c010b673ef54949e13815b4ae9d3fb99
Nicolas Geoffray [Fri, 15 Apr 2016 13:50:32 +0000 (13:50 +0000)]
Merge "Properly initialize the is_osr_method_being_compiled_ flag."
Nicolas Geoffray [Fri, 15 Apr 2016 13:16:34 +0000 (14:16 +0100)]
Properly initialize the is_osr_method_being_compiled_ flag.
bug:
27939339
(cherry picked from commit
7982f347f5a32db79a0bf03354857a9f7f1f1948)
Change-Id: I4b3a78dac338af51bf7c9ecb7a48d90aad370938
Alexandre Rames [Fri, 15 Apr 2016 10:54:06 +0000 (11:54 +0100)]
Fix: correctly destruct VIXL labels.
Bug:
27505766
Change-Id: I077465e3d308f4331e7a861902e05865f9d99835
David Brazdil [Fri, 15 Apr 2016 09:37:17 +0000 (09:37 +0000)]
Merge "Rename test whose name was too long for some configs"
David Brazdil [Fri, 15 Apr 2016 09:35:04 +0000 (10:35 +0100)]
Rename test whose name was too long for some configs
Bug:
27615840
Bug:
27624868
Change-Id: Id15382753a65a16d438abf514104233441444c8d
Vladimir Marko [Fri, 15 Apr 2016 09:23:47 +0000 (09:23 +0000)]
Merge "Fix CFI fixups for long branches on MIPS."
Vladimir Marko [Fri, 15 Apr 2016 08:59:16 +0000 (08:59 +0000)]
Merge "Use dex cache from compilation unit in RTP."
Richard Uhler [Thu, 14 Apr 2016 21:19:56 +0000 (21:19 +0000)]
Merge "Disable stripped-dex test on target."
Richard Uhler [Thu, 14 Apr 2016 20:31:30 +0000 (13:31 -0700)]
Disable stripped-dex test on target.
Because the targets don't have the required zip command.
Bug:
27599626
Change-Id: I5ba075165d96d831a4b8e0912cff1319071c60a5
Andreas Gampe [Thu, 14 Apr 2016 20:09:00 +0000 (20:09 +0000)]
Merge "ART: Make iget receiver mismatch hard verifier error"
Andreas Gampe [Thu, 14 Apr 2016 17:55:04 +0000 (10:55 -0700)]
ART: Make iget receiver mismatch hard verifier error
If the classes are resolved, and still not match, this should be
a verify error.
Bug:
28187158
Change-Id: I89c996ae15865674f21cf32ec378d37bac34861b
Vladimir Marko [Thu, 14 Apr 2016 17:07:55 +0000 (18:07 +0100)]
Use dex cache from compilation unit in RTP.
Avoid calling the costly ClassLinker::FindDexCache() from
reference type propagation when the dex cache from the
compilation unit will do, i.e. almost always. Compiling
the Nexus 5 boot image on host under perf(1) shows that
the FindDexCache() hits drop from about 0.2% to almost
nothing, though enabling inlining for the boot image will
increase it a bit to 0.03% due to unavoidable calls from
the inliner.
Also clean up the ScopedObjectAccess usage a bit.
Change-Id: I426a5f9f5da9e64fad2ea57654240789a48d3871
Richard Uhler [Thu, 14 Apr 2016 16:11:40 +0000 (16:11 +0000)]
Merge "Restore fallback behavior in the no-image stripped-dex case."
David Brazdil [Thu, 14 Apr 2016 15:59:02 +0000 (15:59 +0000)]
Merge "ART: Save a bit of memory in production LICM"
David Brazdil [Thu, 14 Apr 2016 15:56:40 +0000 (15:56 +0000)]
Merge "ART: Update DCHECKs in SsaLivenessAnalysis::AddBackEdgeUses"
David Brazdil [Thu, 14 Apr 2016 15:36:15 +0000 (16:36 +0100)]
ART: Save a bit of memory in production LICM
LICM uses a bit vector to DCHECK that inner loops are visited before
outer loops. Allocate the bit vector only if kIsDebugBuild.
Change-Id: Ic2641607ebe55ad8974de2ebe03973f0bf182e42
David Brazdil [Thu, 14 Apr 2016 12:47:24 +0000 (13:47 +0100)]
ART: Update DCHECKs in SsaLivenessAnalysis::AddBackEdgeUses
Graph linearization in the presence of irreducible loops is not
guaranteed to generate a linear order where all blocks of a loop are
adjacent, first block is the header and last block is one of the back
edges.
These assumptions are made when inserting synthesized uses at the back
edges to aid the register allocator. Not meeting them will result in
the algorithm's early termination and back-edge uses not being added.
This patch updates the DCHECKs so the compiler does not fail in such
circumstances.
Bug:
27615840
Bug:
27624868
Change-Id: I63632e8819ea3644d5c6fdfea00b66128bf22c24
Nicolas Geoffray [Thu, 14 Apr 2016 13:34:36 +0000 (13:34 +0000)]
Merge "Fix initialization of field after conflicting merges."
Nicolas Geoffray [Thu, 14 Apr 2016 13:17:29 +0000 (14:17 +0100)]
Fix initialization of field after conflicting merges.
Change-Id: I5c887d5cbcd94f51c3566e964d217a906dbaa9ea
Nicolas Geoffray [Thu, 14 Apr 2016 12:39:05 +0000 (12:39 +0000)]
Merge "Don't use JACK alpha anymore."
Nicolas Geoffray [Thu, 14 Apr 2016 12:32:01 +0000 (13:32 +0100)]
Don't use JACK alpha anymore.
Change-Id: Id37d90446be5d63cb0cf0131e34b562147e88335
Vladimir Marko [Thu, 14 Apr 2016 10:48:16 +0000 (10:48 +0000)]
Merge "Fix copy-paste nit"
Vladimir Marko [Thu, 14 Apr 2016 10:30:39 +0000 (10:30 +0000)]
Merge "Use dex cache from compilation unit in HInstructionBuilder."
Vladimir Marko [Thu, 14 Apr 2016 10:27:34 +0000 (11:27 +0100)]
Fix CFI fixups for long branches on MIPS.
Change-Id: Ibc078e6dc5d7ef423c6a3db855f19f1426e0ea5a
Goran Jakovljevic [Thu, 14 Apr 2016 09:46:58 +0000 (11:46 +0200)]
Fix copy-paste nit
Pair ENTRY and END macros.
Change-Id: I17dcc61cdd02b2c26b9920e5385b6cb1420b18dd
Nicolas Geoffray [Thu, 14 Apr 2016 09:47:04 +0000 (09:47 +0000)]
Merge "Remove the JIT from the instrumentation framework."
Vladimir Marko [Wed, 13 Apr 2016 18:29:26 +0000 (19:29 +0100)]
Use dex cache from compilation unit in HInstructionBuilder.
Avoid calling costly ClassLinker::FindDexCache() from
HInstructionBuilder, the dex cache is already available in
the compilation unit. Compiling Nexus 5 boot image on host
under perf(1) shows that the time spent in FindDexCache()
is reduced from about 2% to well under 0.2%, 90% of the
remaining hits coming from ReferenceTypePropagation which
doesn't have access to the compilation unit.
Change-Id: Id9df61c79db9a67e3f12c857f32a4ca80e5420c3
Aart Bik [Wed, 13 Apr 2016 22:34:17 +0000 (22:34 +0000)]
Merge "Revert "Remove the no-longer-needed F/I and D/J alias.""
Treehugger Robot [Wed, 13 Apr 2016 22:05:51 +0000 (22:05 +0000)]
Merge "Allow private methods in interfaces."
Aart Bik [Wed, 13 Apr 2016 21:17:17 +0000 (21:17 +0000)]
Revert "Remove the no-longer-needed F/I and D/J alias."
This reverts commit
2f52064dcfe5ebce5a998d30766ca079a366c920.
Reason:
Arrays.sort() returns wrong result on double[] and this CL is the most likely suspect. Rolling back to buy some time for careful analysis and debugging.
Change-Id: I58223c42e95c2287520eef863fbcb738b0736d4d
Alex Light [Tue, 12 Apr 2016 22:50:55 +0000 (15:50 -0700)]
Allow private methods in interfaces.
Private methods may be generated in interfaces during compilation of
some default methods. Change the verifier to allow these methods.
Bug:
27999840
Change-Id: Ib8120a8f6cb036021334d9af0ed78ae372974ecb
Richard Uhler [Mon, 4 Apr 2016 20:30:16 +0000 (13:30 -0700)]
Restore fallback behavior in the no-image stripped-dex case.
Add --strip-dex option to run-test to test this case.
Bug:
27599626
Change-Id: I010543f48c39adbda007e2e05dda62ac1d70715c
Mathieu Chartier [Wed, 13 Apr 2016 19:11:29 +0000 (19:11 +0000)]
Merge "Add imgdiag support for diff against zygote"