OSDN Git Service

android-x86/art.git
8 years agoMerge "ART: Naive NullCheck elimination in InstructionBuilder"
David Brazdil [Fri, 22 Apr 2016 16:52:18 +0000 (16:52 +0000)]
Merge "ART: Naive NullCheck elimination in InstructionBuilder"

8 years agoART: Naive NullCheck elimination in InstructionBuilder
David Brazdil [Fri, 22 Apr 2016 15:57:00 +0000 (16:57 +0100)]
ART: Naive NullCheck elimination in InstructionBuilder

Save a little bit of memory by not generating trivially redundant
HNullCheck instructions. This patch builds on the fact that the
InstructionBuilder now directly generates SSA form and looks at the
input of the NullCheck. For obvious cases, such as NewInstance/Array
or `this`, the NullCheck generation is completely avoided.

Bug: 28173563
Change-Id: I1fdf3b096c7a939f7b8586c02a2a6b44dfa43443

8 years agoMerge "Thumb2: Reduce memory used for fixup dependencies."
Vladimir Marko [Fri, 22 Apr 2016 14:41:04 +0000 (14:41 +0000)]
Merge "Thumb2: Reduce memory used for fixup dependencies."

8 years agoThumb2: Reduce memory used for fixup dependencies.
Vladimir Marko [Fri, 22 Apr 2016 11:16:29 +0000 (12:16 +0100)]
Thumb2: Reduce memory used for fixup dependencies.

Mark fixups for far backward branches as 32-bit from the
beginning and ignore their dependencies since they cannot
be expanded anymore. This reduces the memory used by the
fixup_dependents_ when compiling methods with a lot of
slow paths.

Bug: 28256882
Change-Id: I0b7155ed8970b69703fa9c4666d9c4961e425721

8 years agoMerge "Avoid redundant Long allocation before unboxing"
Tobias Thierer [Fri, 22 Apr 2016 10:05:19 +0000 (10:05 +0000)]
Merge "Avoid redundant Long allocation before unboxing"

8 years agoMerge "ART: Disable unstarted runtime pow test for valgrind"
Treehugger Robot [Fri, 22 Apr 2016 00:59:59 +0000 (00:59 +0000)]
Merge "ART: Disable unstarted runtime pow test for valgrind"

8 years agoART: 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

8 years agoMerge "Make dex file loading failure more explicit about failure."
Alex Light [Thu, 21 Apr 2016 21:35:00 +0000 (21:35 +0000)]
Merge "Make dex file loading failure more explicit about failure."

8 years agoMerge "Revert "Revert "Assembly TLAB and RegionTLAB allocation fast path for x86"""
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"""

8 years agoMerge "X86/X86_64: Switch to locked add from mfence"
Aart Bik [Thu, 21 Apr 2016 19:36:23 +0000 (19:36 +0000)]
Merge "X86/X86_64: Switch to locked add from mfence"

8 years agoMerge "Fix heap check."
Mathieu Chartier [Thu, 21 Apr 2016 19:14:07 +0000 (19:14 +0000)]
Merge "Fix heap check."

8 years agoFix 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

8 years agoMerge "ART: Address late comments on a GVN memory-saving CL"
David Brazdil [Thu, 21 Apr 2016 14:58:40 +0000 (14:58 +0000)]
Merge "ART: Address late comments on a GVN memory-saving CL"

8 years agoART: 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

8 years agoMerge "Thumb2: Fix disassembly of the b.w offset."
Vladimir Marko [Thu, 21 Apr 2016 14:40:22 +0000 (14:40 +0000)]
Merge "Thumb2: Fix disassembly of the b.w offset."

8 years agoThumb2: 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

8 years agoAvoid redundant Long allocation before unboxing
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

8 years agoMerge "Reduce memory usage in GVN"
David Brazdil [Thu, 21 Apr 2016 11:15:43 +0000 (11:15 +0000)]
Merge "Reduce memory usage in GVN"

8 years agoReduce 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

8 years agoRevert "Revert "Assembly TLAB and RegionTLAB allocation fast path for x86""
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

8 years agoMerge "Revert "Assembly TLAB and RegionTLAB allocation fast path for x86""
Hiroshi Yamauchi [Thu, 21 Apr 2016 00:42:14 +0000 (00:42 +0000)]
Merge "Revert "Assembly TLAB and RegionTLAB allocation fast path for x86""

8 years agoRevert "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

8 years agoMerge "Assembly TLAB and RegionTLAB allocation fast path for x86"
Hiroshi Yamauchi [Wed, 20 Apr 2016 23:14:16 +0000 (23:14 +0000)]
Merge "Assembly TLAB and RegionTLAB allocation fast path for x86"

8 years agoMake dex file loading failure more explicit about failure.
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

8 years agoMerge "ART: Change x86 from modify_ldt to set_thread_data"
Andreas Gampe [Wed, 20 Apr 2016 21:26:53 +0000 (21:26 +0000)]
Merge "ART: Change x86 from modify_ldt to set_thread_data"

8 years agoMerge changes I0360a078,I3e267519
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

8 years agoMerge "Fix HInstruction::ReplaceInput(), allow no-op."
Vladimir Marko [Wed, 20 Apr 2016 18:42:26 +0000 (18:42 +0000)]
Merge "Fix HInstruction::ReplaceInput(), allow no-op."

8 years agoFix 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

8 years agoMerge "Do less work holding thread list lock"
Mathieu Chartier [Wed, 20 Apr 2016 18:22:24 +0000 (18:22 +0000)]
Merge "Do less work holding thread list lock"

8 years agoMerge changes Ic40833d3,I8f286987
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.

8 years agoART: Add Math cutouts
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

8 years agoART: Add some reflection cutouts
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

8 years agoDo less work holding thread list lock
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

8 years agoMerge "Fix RTP to hold mutator lock while using raw mirror pointers."
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."

8 years agoMerge "Thumb2: Fix EmitJumpTables() to extend buffer only if needed."
Vladimir Marko [Wed, 20 Apr 2016 14:36:50 +0000 (14:36 +0000)]
Merge "Thumb2: Fix EmitJumpTables() to extend buffer only if needed."

8 years agoFix RTP to hold mutator lock while using raw mirror pointers.
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

8 years agoThumb2: Fix EmitJumpTables() to extend buffer only if needed.
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

8 years agoMerge "Reuse HUseListNode<>s when replacing instruction or input."
Vladimir Marko [Wed, 20 Apr 2016 11:52:24 +0000 (11:52 +0000)]
Merge "Reuse HUseListNode<>s when replacing instruction or input."

8 years agoMerge "Fix reference_type_propagation_test."
Vladimir Marko [Wed, 20 Apr 2016 10:27:15 +0000 (10:27 +0000)]
Merge "Fix reference_type_propagation_test."

8 years agoFix 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

8 years agoMerge "Revert "Increase timeout for the 570-checker-osr test from 20s to 60s.""
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.""

8 years agoRevert "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

8 years agoMerge "Revert "Revert "Use dex cache from compilation unit in RTP."""
Vladimir Marko [Wed, 20 Apr 2016 09:00:49 +0000 (09:00 +0000)]
Merge "Revert "Revert "Use dex cache from compilation unit in RTP."""

8 years agoMerge "ART: Remove Security initialization cutout"
Andreas Gampe [Wed, 20 Apr 2016 04:39:14 +0000 (04:39 +0000)]
Merge "ART: Remove Security initialization cutout"

8 years agoAssembly TLAB and RegionTLAB allocation fast path for x86
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

8 years agoART: 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

8 years agoMerge "Do not use EXPECT_DEATH in unit test, fails on device."
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."

8 years agoDo 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

8 years agoReuse HUseListNode<>s when replacing instruction or input.
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

8 years agoMerge "Use iterators "before" the use node in HUserRecord<>."
Vladimir Marko [Tue, 19 Apr 2016 18:26:22 +0000 (18:26 +0000)]
Merge "Use iterators "before" the use node in HUserRecord<>."

8 years agoRevert "Revert "Use dex cache from compilation unit in RTP.""
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

8 years agoRevert "Disable JDWP tests with read barriers."
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

8 years agoFix a deadlock between debugger and GC.
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

8 years agoMerge "Fix a DCHECK failure in Arm64RelativePatcher with read barrier."
Hiroshi Yamauchi [Tue, 19 Apr 2016 17:44:07 +0000 (17:44 +0000)]
Merge "Fix a DCHECK failure in Arm64RelativePatcher with read barrier."

8 years agoMerge "Fix 570-checker-osr test for non-debuggable mode."
Vladimir Marko [Tue, 19 Apr 2016 17:35:18 +0000 (17:35 +0000)]
Merge "Fix 570-checker-osr test for non-debuggable mode."

8 years agoUse iterators "before" the use node in HUserRecord<>.
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

8 years agoFix 570-checker-osr test for non-debuggable mode.
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

8 years agoMerge "Avoid constructing types with errors."
Aart Bik [Tue, 19 Apr 2016 16:21:46 +0000 (16:21 +0000)]
Merge "Avoid constructing types with errors."

8 years agoMerge "ART: Fast-fail empty other handlers in fault handling"
Andreas Gampe [Tue, 19 Apr 2016 15:30:54 +0000 (15:30 +0000)]
Merge "ART: Fast-fail empty other handlers in fault handling"

8 years agoMerge "Increase timeout for the 570-checker-osr test from 20s to 60s."
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."

8 years agoIncrease 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

8 years agoMerge "Fix inlining loops in OSR mode."
Vladimir Marko [Tue, 19 Apr 2016 13:54:10 +0000 (13:54 +0000)]
Merge "Fix inlining loops in OSR mode."

8 years agoFix 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

8 years agoMerge "Initialize a variable to suppress compiler error"
Vladimir Marko [Tue, 19 Apr 2016 10:38:44 +0000 (10:38 +0000)]
Merge "Initialize a variable to suppress compiler error"

8 years agoInitialize 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

8 years agoMerge "ART: Fix IsLinearOrderWellFormed in liveness analysis"
David Brazdil [Tue, 19 Apr 2016 09:25:09 +0000 (09:25 +0000)]
Merge "ART: Fix IsLinearOrderWellFormed in liveness analysis"

8 years agoART: 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>
8 years agoAvoid constructing types with errors.
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

8 years agoMerge changes I0f164a7d,I8c408aa6
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

8 years agoART: Add cutout for Character.toLower/UpperCase
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

8 years agoART: Add ClassLoader.getResourceAsStream cutout
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

8 years agoART: Fast-fail empty other handlers in fault handling
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

8 years agoMerge changes from topic 'monitor_lock'
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

8 years agoFix a DCHECK failure in Arm64RelativePatcher with read barrier.
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

8 years agoPrevent holding stale Thread pointers
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

8 years agoAdd more info to monitor contention logging
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

8 years agoMerge "Fix interaction between instrumentation and jit lock."
Nicolas Geoffray [Mon, 18 Apr 2016 12:23:17 +0000 (12:23 +0000)]
Merge "Fix interaction between instrumentation and jit lock."

8 years agoFix 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

8 years agoMerge "Increase vtable size for String class"
Yi Kong [Mon, 18 Apr 2016 09:57:23 +0000 (09:57 +0000)]
Merge "Increase vtable size for String class"

8 years agoMerge "Add weight to compiled/interpreter transitions."
Nicolas Geoffray [Mon, 18 Apr 2016 08:17:48 +0000 (08:17 +0000)]
Merge "Add weight to compiled/interpreter transitions."

8 years agoMerge "ART: Add a System.getProperty cutout"
Andreas Gampe [Sat, 16 Apr 2016 03:43:14 +0000 (03:43 +0000)]
Merge "ART: Add a System.getProperty cutout"

8 years agoART: 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

8 years agoMerge "ART: Fix nits for verifier change"
Andreas Gampe [Sat, 16 Apr 2016 01:32:29 +0000 (01:32 +0000)]
Merge "ART: Fix nits for verifier change"

8 years agoART: 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

8 years agoIncrease vtable size for String class
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

8 years agoMerge "Disable stripped-dex test for no-dex2oat."
Richard Uhler [Fri, 15 Apr 2016 21:03:59 +0000 (21:03 +0000)]
Merge "Disable stripped-dex test for no-dex2oat."

8 years agoDisable 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

8 years agoMerge "Remove the no-longer-needed F/I and D/J alias."
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."

8 years agoMerge "Fix: correctly destruct VIXL labels."
Roland Levillain [Fri, 15 Apr 2016 18:55:20 +0000 (18:55 +0000)]
Merge "Fix: correctly destruct VIXL labels."

8 years agoRemove the no-longer-needed F/I and D/J alias.
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

8 years agoMerge "Enable allocation elimination as part of LSE"
Mingyao Yang [Fri, 15 Apr 2016 17:30:05 +0000 (17:30 +0000)]
Merge "Enable allocation elimination as part of LSE"

8 years agoMerge "OpenJdkJVM: Fix Mac OS build."
Narayan Kamath [Fri, 15 Apr 2016 17:25:28 +0000 (17:25 +0000)]
Merge "OpenJdkJVM: Fix Mac OS build."

8 years agoMerge "Revert "Revert "ART: Improve JitProfile perf in x86_64 mterp"""
Bill Buzbee [Fri, 15 Apr 2016 17:09:07 +0000 (17:09 +0000)]
Merge "Revert "Revert "ART: Improve JitProfile perf in x86_64 mterp"""

8 years agoMerge "Revert "Use dex cache from compilation unit in RTP.""
Nicolas Geoffray [Fri, 15 Apr 2016 17:01:25 +0000 (17:01 +0000)]
Merge "Revert "Use dex cache from compilation unit in RTP.""

8 years agoRevert "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

8 years agoOpenJdkJVM: Fix Mac OS build.
Narayan Kamath [Fri, 15 Apr 2016 16:51:55 +0000 (17:51 +0100)]
OpenJdkJVM: Fix Mac OS build.

bug: 28192631
Change-Id: I423d5e79aacfbe82e22d095ffbfd3eefedbb484b

8 years agoMerge "OpenJdkJVM: Fix JVM_Lseek"
Narayan Kamath [Fri, 15 Apr 2016 16:30:17 +0000 (16:30 +0000)]
Merge "OpenJdkJVM: Fix JVM_Lseek"

8 years agoEnable allocation elimination as part of LSE
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

8 years agoRevert "Revert "ART: Improve JitProfile perf in x86_64 mterp""
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

8 years agoOpenJdkJVM: Fix JVM_Lseek
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