OSDN Git Service

android-x86/art.git
8 years agoAlso compile libnetd_client for target testing.
Nicolas Geoffray [Mon, 13 Jun 2016 14:28:38 +0000 (15:28 +0100)]
Also compile libnetd_client for target testing.

The runtime linker will load the one on /system otherwise.

Change-Id: Id57e84d1b34e807437818d39bf6ef5f727a7d210

8 years agoMerge "Disable 149-suspend-all-stress, its output is flaky."
Nicolas Geoffray [Sat, 11 Jun 2016 12:43:11 +0000 (12:43 +0000)]
Merge "Disable 149-suspend-all-stress, its output is flaky."

8 years agoDisable 149-suspend-all-stress, its output is flaky.
Nicolas Geoffray [Sat, 11 Jun 2016 12:40:26 +0000 (13:40 +0100)]
Disable 149-suspend-all-stress, its output is flaky.

bug:28988206
Change-Id: I13cce14b72d753c9ba2ca9b4e256eb571620caa9

8 years agoMerge "Revert "ART: Disable check under memory tools""
Andreas Gampe [Sat, 11 Jun 2016 03:36:14 +0000 (03:36 +0000)]
Merge "Revert "ART: Disable check under memory tools""

8 years agoRevert "ART: Disable check under memory tools"
Andreas Gampe [Sat, 11 Jun 2016 03:34:55 +0000 (20:34 -0700)]
Revert "ART: Disable check under memory tools"

This reverts commit 820c13bea5795e04986bf617319517562de76514.

The check is valid, the whole stack setup is broken.

8 years agoMerge "ART: Suppress memcpy overlap in jemalloc for valgrind"
Andreas Gampe [Sat, 11 Jun 2016 02:28:19 +0000 (02:28 +0000)]
Merge "ART: Suppress memcpy overlap in jemalloc for valgrind"

8 years agoART: Suppress memcpy overlap in jemalloc for valgrind
Andreas Gampe [Sat, 11 Jun 2016 01:43:46 +0000 (18:43 -0700)]
ART: Suppress memcpy overlap in jemalloc for valgrind

Clang/LLVM uses memcpy for a self-assign, which is detected by
valgrind. Ignore.

Bug: 29279679
Change-Id: I47483e1a2a982b9f3642f98e4389633989885bb8

8 years agoMerge "Use ScopedObjectAccess in ThreadList::Dump"
Mathieu Chartier [Sat, 11 Jun 2016 00:53:57 +0000 (00:53 +0000)]
Merge "Use ScopedObjectAccess in ThreadList::Dump"

8 years agoUse ScopedObjectAccess in ThreadList::Dump
Mathieu Chartier [Sat, 11 Jun 2016 00:04:20 +0000 (17:04 -0700)]
Use ScopedObjectAccess in ThreadList::Dump

Prevent deadlocks if two different threads are calling Dump at the
same time:

Thread 1: Requests thread 2 to suspend
Thread 2: Requests thread 1 to suspend
Both threads are suspended and blocked on ScopedObjectAccess in
thread dumping.

Added to suspend all stress, reduced thread count to 4 temporarily
since this is the maximum number of simultaneous checkpoints.

Bug: 28988206

Change-Id: I9e4b8391ebad0bca0e42a03819c58c99ddba6b35

8 years agoMerge "ART: Disable check under memory tools"
Treehugger Robot [Sat, 11 Jun 2016 00:03:56 +0000 (00:03 +0000)]
Merge "ART: Disable check under memory tools"

8 years agoMerge "Fix the region space name for dumpsys meminfo."
Treehugger Robot [Fri, 10 Jun 2016 22:54:41 +0000 (22:54 +0000)]
Merge "Fix the region space name for dumpsys meminfo."

8 years agoMerge "Disable the CC collector / read barrier checks in non-debug build."
Treehugger Robot [Fri, 10 Jun 2016 22:42:05 +0000 (22:42 +0000)]
Merge "Disable the CC collector / read barrier checks in non-debug build."

8 years agoART: Disable check under memory tools
Andreas Gampe [Fri, 10 Jun 2016 22:32:21 +0000 (15:32 -0700)]
ART: Disable check under memory tools

Disable a stack check under memory tools. It assumes a single
common stack, which seems violated at least under valgrind on
ARM.

Change-Id: Ida05adb0728cc46f3bbda4d34be7a1623bb3bc82

8 years agoFix the region space name for dumpsys meminfo.
Hiroshi Yamauchi [Fri, 10 Jun 2016 21:59:43 +0000 (14:59 -0700)]
Fix the region space name for dumpsys meminfo.

Bug: 12687968
Change-Id: I42e3d4cd9afb9892eb1d173b18f8b3e9491429dd

8 years agoDisable the CC collector / read barrier checks in non-debug build.
Hiroshi Yamauchi [Fri, 10 Jun 2016 21:27:38 +0000 (14:27 -0700)]
Disable the CC collector / read barrier checks in non-debug build.

Bug: 12687968

Change-Id: Ia8295354b705018ffa864eb8101aa5c09528af13

8 years agoMerge "ART: Fix swap usage determination in dex2oat"
Treehugger Robot [Fri, 10 Jun 2016 19:19:53 +0000 (19:19 +0000)]
Merge "ART: Fix swap usage determination in dex2oat"

8 years agoART: Fix swap usage determination in dex2oat
Andreas Gampe [Thu, 9 Jun 2016 01:18:47 +0000 (18:18 -0700)]
ART: Fix swap usage determination in dex2oat

The decision needs to be postponed until we have access to the
dex files.

Bug: 27878043

(cherry picked from commit ce55f0d4da1db20676273032b3c79624f665b35b)

Change-Id: I55833c6ea827ec7a322711bd182fc723d1727f08

8 years agoMerge "Fix dex file leak in oat file manager"
Mathieu Chartier [Fri, 10 Jun 2016 16:50:40 +0000 (16:50 +0000)]
Merge "Fix dex file leak in oat file manager"

8 years agoFix dex file leak in oat file manager
Mathieu Chartier [Thu, 9 Jun 2016 23:18:04 +0000 (16:18 -0700)]
Fix dex file leak in oat file manager

Simplified ownership by having a vector of unique pointers own
all newly opened dex files.

Bug: 29246280

(cherry picked from commit fed316715faeec7bf34e3c4a878288c1342cb0e8)

Change-Id: I97db09ced76db8ffdbae371ff72977c4276a0494

8 years agoMerge "ART: Add ATRACE section for collision check"
Treehugger Robot [Fri, 10 Jun 2016 16:34:24 +0000 (16:34 +0000)]
Merge "ART: Add ATRACE section for collision check"

8 years agoART: Add ATRACE section for collision check
Andreas Gampe [Fri, 10 Jun 2016 15:36:20 +0000 (08:36 -0700)]
ART: Add ATRACE section for collision check

The collision check for duplicate classes is potentially expensive.
Add a ScopedTrace to mark it.

Bug: 26880306
Change-Id: Icd75bd0ccc15f0d1f321d85382a4d038fa8ab049

8 years agoMerge "Add Valgrind target tests"
Treehugger Robot [Fri, 10 Jun 2016 02:10:08 +0000 (02:10 +0000)]
Merge "Add Valgrind target tests"

8 years agoAdd Valgrind target tests
Anton Kirilov [Tue, 3 May 2016 15:15:36 +0000 (16:15 +0100)]
Add Valgrind target tests

Change-Id: I1251ac2122c60ed5fcabf184704bc439243ee85b

8 years agoMerge "Fix some "possible" divide by 0"
Mathieu Chartier [Thu, 9 Jun 2016 21:55:24 +0000 (21:55 +0000)]
Merge "Fix some "possible" divide by 0"

8 years agoFix some "possible" divide by 0
Mathieu Chartier [Thu, 9 Jun 2016 18:51:27 +0000 (11:51 -0700)]
Fix some "possible" divide by 0

Bug: 28529431
Change-Id: I61f638926b2ae63c5f883fc2cfdce19b00ce79c8

8 years agoMerge "Add thread suspend stress"
Mathieu Chartier [Thu, 9 Jun 2016 17:59:58 +0000 (17:59 +0000)]
Merge "Add thread suspend stress"

8 years agoMerge "Re-introduce an old version of 600-verifier-fails."
Nicolas Geoffray [Thu, 9 Jun 2016 15:56:33 +0000 (15:56 +0000)]
Merge "Re-introduce an old version of 600-verifier-fails."

8 years agoRe-introduce an old version of 600-verifier-fails.
Nicolas Geoffray [Thu, 9 Jun 2016 15:53:34 +0000 (16:53 +0100)]
Re-introduce an old version of 600-verifier-fails.

The fugu buildbot had a crash on this version:
https://build.chromium.org/p/client.art/builders/fugu-ndebug/builds/3844

It got lost after updates to the tests.

Change-Id: Ib3748e6d6772e90bbc56b8139e374c7cf8953ce4

8 years agoMerge "Ensure we have a profiling info object before trying to compile."
Nicolas Geoffray [Thu, 9 Jun 2016 12:38:42 +0000 (12:38 +0000)]
Merge "Ensure we have a profiling info object before trying to compile."

8 years agoEnsure we have a profiling info object before trying to compile.
Nicolas Geoffray [Thu, 9 Jun 2016 10:59:31 +0000 (11:59 +0100)]
Ensure we have a profiling info object before trying to compile.

Otherwise we will never succeed compiling and infinite loop.

Change-Id: I7ff09c69e67f0df4cb450ffa10a529625eac67fd

8 years agoMerge "Also catch OOME from the new byte[]."
Nicolas Geoffray [Thu, 9 Jun 2016 12:09:57 +0000 (12:09 +0000)]
Merge "Also catch OOME from the new byte[]."

8 years agoAlso catch OOME from the new byte[].
Nicolas Geoffray [Thu, 9 Jun 2016 12:09:17 +0000 (13:09 +0100)]
Also catch OOME from the new byte[].

Change-Id: Ic756070ed4a3cb3760760fd5a2ebcad1ea0a8ca0

8 years agoMerge "Fix FOUR_ARG_DOWNCALL assembly stubs on arm and x86."
Treehugger Robot [Thu, 9 Jun 2016 10:31:28 +0000 (10:31 +0000)]
Merge "Fix FOUR_ARG_DOWNCALL assembly stubs on arm and x86."

8 years agoMerge "Use usleep instead of sleep(0)."
Treehugger Robot [Thu, 9 Jun 2016 09:55:14 +0000 (09:55 +0000)]
Merge "Use usleep instead of sleep(0)."

8 years agoFix FOUR_ARG_DOWNCALL assembly stubs on arm and x86.
Nicolas Geoffray [Wed, 8 Jun 2016 17:01:22 +0000 (18:01 +0100)]
Fix FOUR_ARG_DOWNCALL assembly stubs on arm and x86.

They were creating a stack that the runtime did not understand.

bug:28348339
Change-Id: Ic03663552209beda8ff1e79db58bedc8f34d9a0e

8 years agoUse usleep instead of sleep(0).
Nicolas Geoffray [Thu, 9 Jun 2016 08:53:55 +0000 (09:53 +0100)]
Use usleep instead of sleep(0).

sleep(0) is unfortunately not specified.

Change-Id: I5e9c626d21a562ca04329c0cc039a1f3a71dfc84

8 years agoMerge "Bump frame size limit 8 bytes to fix x86_64 build with latest external/libcxx"
Brian Carlstrom [Thu, 9 Jun 2016 07:19:21 +0000 (07:19 +0000)]
Merge "Bump frame size limit 8 bytes to fix x86_64 build with latest external/libcxx"

8 years agoBump frame size limit 8 bytes to fix x86_64 build with latest external/libcxx
Brian Carlstrom [Thu, 9 Jun 2016 06:48:27 +0000 (23:48 -0700)]
Bump frame size limit 8 bytes to fix x86_64 build with latest external/libcxx

Change-Id: Ib8964d18aa509ee40a91d92eea1011447d429ed7

8 years agoMerge "Revert "Revert "Revert "Revert "Revert some flaky unloading"""""
Treehugger Robot [Thu, 9 Jun 2016 00:04:35 +0000 (00:04 +0000)]
Merge "Revert "Revert "Revert "Revert "Revert some flaky unloading"""""

8 years agoAdd thread suspend stress
Mathieu Chartier [Wed, 8 Jun 2016 23:29:48 +0000 (16:29 -0700)]
Add thread suspend stress

Seems to be passing, aim to catch bugs related to thread suspension.

Bug: 28988206

Change-Id: I48190900ccd7a2545c6f09cf730e995043b0d9b7

8 years agoRevert "Revert "Revert "Revert "Revert some flaky unloading""""
Alex Light [Wed, 8 Jun 2016 23:12:45 +0000 (23:12 +0000)]
Revert "Revert "Revert "Revert "Revert some flaky unloading""""

Fugu is still unhappy

Bug: 28406866

This reverts commit 340f486aa0126facb67494449b5c2ee46a1a75e6.

Change-Id: I45fc77f924d991669d27b99c1458b2def8692664

8 years agoMerge "Temporarily disable test E"
Treehugger Robot [Wed, 8 Jun 2016 23:03:56 +0000 (23:03 +0000)]
Merge "Temporarily disable test E"

8 years agoMerge "Add a few more pending exception checks"
Mathieu Chartier [Wed, 8 Jun 2016 22:43:34 +0000 (22:43 +0000)]
Merge "Add a few more pending exception checks"

8 years agoAdd a few more pending exception checks
Mathieu Chartier [Wed, 8 Jun 2016 22:09:08 +0000 (15:09 -0700)]
Add a few more pending exception checks

Bug: 28371539

Change-Id: Ibd2f7ccf7bd8cf7ef6c24534be1efbcc9b30014a

8 years agoTemporarily disable test E
Aart Bik [Wed, 8 Jun 2016 21:49:28 +0000 (14:49 -0700)]
Temporarily disable test E

Rationale:
Interpreter does not seem to perform access checks
prior to null check, a feature that was just fixed
in the AOT compiler. Disabling the test until we
figure out who is right.....

BUG=29068831

Change-Id: I2cdce568727e631f48648f401806e7ecd6985038

8 years agoMerge "Revert "Revert "Revert "Revert some flaky unloading""""
Alex Light [Wed, 8 Jun 2016 21:07:39 +0000 (21:07 +0000)]
Merge "Revert "Revert "Revert "Revert some flaky unloading""""

8 years agoRevert "Revert "Revert "Revert some flaky unloading"""
Alex Light [Tue, 7 Jun 2016 17:34:46 +0000 (10:34 -0700)]
Revert "Revert "Revert "Revert some flaky unloading"""

Ensure that all threads are in the JNI code before destroying the
runtime.

Bug: 28406866

This reverts commit b2716bbf321293ddbd0b96f0ea999794b0e9b09b.

Change-Id: I7f6189a9d0d8a1bf7af5535026804bc2183466c9

8 years agoMerge "Do not place null check on unresolved method calls."
Aart Bik [Wed, 8 Jun 2016 17:41:39 +0000 (17:41 +0000)]
Merge "Do not place null check on unresolved method calls."

8 years agoDo not place null check on unresolved method calls.
Aart Bik [Tue, 7 Jun 2016 20:49:12 +0000 (13:49 -0700)]
Do not place null check on unresolved method calls.

Rationale:
These invokes drop through the runtime anyway where various
checks are done, including null check. A few of these
checks need to occur before the null check.

With fail-before/pass-after smali test.

BUG=29068831

Change-Id: I260715e742365433a323598d97f7fdab321e8512

8 years agoMerge "Use sleep instead of sched_yield."
Treehugger Robot [Wed, 8 Jun 2016 16:18:17 +0000 (16:18 +0000)]
Merge "Use sleep instead of sched_yield."

8 years agoUse sleep instead of sched_yield.
Nicolas Geoffray [Wed, 8 Jun 2016 12:37:45 +0000 (13:37 +0100)]
Use sleep instead of sched_yield.

The compiler thread has a different priority than the main thread,
so there's no guarantee sched_yield will actually pass the CPU to
the compiler thread.

Change-Id: I7e8d3cbf478c482a9ba9502f7bba7fb1397cd28e

8 years agoMerge "Be pro-active into ensuring a method is JITted in test."
Treehugger Robot [Wed, 8 Jun 2016 09:22:39 +0000 (09:22 +0000)]
Merge "Be pro-active into ensuring a method is JITted in test."

8 years agoBe pro-active into ensuring a method is JITted in test.
Nicolas Geoffray [Wed, 8 Jun 2016 08:18:38 +0000 (09:18 +0100)]
Be pro-active into ensuring a method is JITted in test.

Change-Id: I27d7bb76178478e6153e87a076bb39a4dc61f50b

8 years agoMerge "Wrap certain exception types when loading an erroneous class."
Treehugger Robot [Wed, 8 Jun 2016 04:03:56 +0000 (04:03 +0000)]
Merge "Wrap certain exception types when loading an erroneous class."

8 years agoWrap certain exception types when loading an erroneous class.
Jeff Hao [Mon, 6 Jun 2016 18:09:20 +0000 (11:09 -0700)]
Wrap certain exception types when loading an erroneous class.

Bug: 28787733

(cherry-picked from commit 7c8aa8357196781c811a73d2eb66aaaa1681ce36)

Change-Id: Iea55486c4b95ee16e1f19c8ba2d24c18b9100c97

8 years agoMerge "Enable profman pretty printing"
David Sehr [Tue, 7 Jun 2016 23:54:19 +0000 (23:54 +0000)]
Merge "Enable profman pretty printing"

8 years agoEnable profman pretty printing
David Sehr [Thu, 2 Jun 2016 17:46:19 +0000 (10:46 -0700)]
Enable profman pretty printing

Bug: 28748264
Change-Id: I4dc366aa710c9ef05aa5d1b164d558232fe57a3d
(cherry picked from commit 45968e76fffdde6a99a462056a52e91c12f4172a)

8 years agoMerge "Initial profman support for verbose dump"
David Sehr [Tue, 7 Jun 2016 21:30:18 +0000 (21:30 +0000)]
Merge "Initial profman support for verbose dump"

8 years agoMerge "Do not hide instance field hard failure with soft failure"
Aart Bik [Tue, 7 Jun 2016 18:16:05 +0000 (18:16 +0000)]
Merge "Do not hide instance field hard failure with soft failure"

8 years agoInitial profman support for verbose dump
David Sehr [Tue, 24 May 2016 21:52:31 +0000 (14:52 -0700)]
Initial profman support for verbose dump

Bug: 28748264
Change-Id: Ibc59e7f31afa4646fcf048eececb87437dd83de9
(cherry picked from commit 07f468f117c4c30a032b7884c08cb1dd2964444e)

8 years agoDo not hide instance field hard failure with soft failure
Aart Bik [Mon, 6 Jun 2016 22:02:44 +0000 (15:02 -0700)]
Do not hide instance field hard failure with soft failure

Rationale:
Yet another verifier inaccuracy found with fuzz testing.
Instance field verification should proceed testing instance
field access after soft failures in cases where hard failures
could still follow. Failure to do so resulted in a compiler
crash (now made bit friendly with DCHECK as well).

With crash-before/pass-after test.

BUG=29126870

Change-Id: I8674d6171158eaa2aeb0492b35dfafea76416cac

8 years agoMerge "Revert "Revert "Fix ArtMethod::GetInvokeType for static methods on interfaces."""
Treehugger Robot [Tue, 7 Jun 2016 16:26:48 +0000 (16:26 +0000)]
Merge "Revert "Revert "Fix ArtMethod::GetInvokeType for static methods on interfaces."""

8 years agoMerge "ART: Remove redundant MoveInstructionBefore method"
David Brazdil [Tue, 7 Jun 2016 15:39:45 +0000 (15:39 +0000)]
Merge "ART: Remove redundant MoveInstructionBefore method"

8 years agoRevert "Revert "Fix ArtMethod::GetInvokeType for static methods on interfaces.""
Nicolas Geoffray [Tue, 7 Jun 2016 14:14:37 +0000 (14:14 +0000)]
Revert "Revert "Fix ArtMethod::GetInvokeType for static methods on interfaces.""

bug:29089267
bug:27521545

We were hitting a compiler DCHECK that a class would never require to
do access checks on itself. The reason was that the compiler driver
was not trying to resolve a type, but instead relied on the verifier
for pre-populating the dex cache. However, the verifier doesn't
necessarily run in JIT mode.

This reverts commit 12abcbd950bd0ff4528e2e0d27ca5e881c7b0467.

Change-Id: I59204c16927084f6605a2a3f999ca529f949e1ad

8 years agoART: Remove redundant MoveInstructionBefore method
David Brazdil [Tue, 7 Jun 2016 13:20:52 +0000 (14:20 +0100)]
ART: Remove redundant MoveInstructionBefore method

Change-Id: If53d7011197cc6b9c1702a3d98ef11b59eb76f0c

8 years agoMerge "MIPS32: Improve method entry/exit code"
Treehugger Robot [Tue, 7 Jun 2016 10:00:00 +0000 (10:00 +0000)]
Merge "MIPS32: Improve method entry/exit code"

8 years agoMerge "Revert "Revert "Revert some flaky unloading"""
Nicolas Geoffray [Tue, 7 Jun 2016 07:27:20 +0000 (07:27 +0000)]
Merge "Revert "Revert "Revert some flaky unloading"""

8 years agoRevert "Revert "Revert some flaky unloading""
Nicolas Geoffray [Tue, 7 Jun 2016 07:26:55 +0000 (07:26 +0000)]
Revert "Revert "Revert some flaky unloading""

Still some issues with 136-daemon-jni-shutdown

bug:28406866

This reverts commit 9e726e874580f1e8b2e0bfa63d2e9a3ac911cd1c.

Change-Id: I76e7ba47e30cf97ecd074d5c2aff41cda8edac59

8 years agoMerge "ART: ArrayGet hoisting restriction added."
Aart Bik [Mon, 6 Jun 2016 20:56:49 +0000 (20:56 +0000)]
Merge "ART: ArrayGet hoisting restriction added."

8 years agoMerge changes Iba55937d,Ib5d82bde,Id0c921bd
Mathieu Chartier [Mon, 6 Jun 2016 20:38:59 +0000 (20:38 +0000)]
Merge changes Iba55937d,Ib5d82bde,Id0c921bd

* changes:
  Revert "Revert "Revert "Temporarily disable dex cache array emptyness DCHECK"""
  Revert "Revert "Hold dex caches live in class table""
  Revert "Hold dex caches live in class table"

8 years agoRevert "Revert "Revert "Temporarily disable dex cache array emptyness DCHECK"""
Mathieu Chartier [Mon, 6 Jun 2016 20:10:50 +0000 (13:10 -0700)]
Revert "Revert "Revert "Temporarily disable dex cache array emptyness DCHECK"""

Bug: 29083330

This reverts commit 46d46993cc0f11c2ac1b7ac8ffd55d78111faf48.

Change-Id: Iba55937de9c4f963ed084093c047d1550f994742

8 years agoRevert "Revert "Hold dex caches live in class table""
Mathieu Chartier [Sat, 4 Jun 2016 00:47:32 +0000 (17:47 -0700)]
Revert "Revert "Hold dex caches live in class table""

Bug: 29083330

This reverts commit f102faf1bcbdb2149e3e7bf27b1819f621b7894b.

(cherry picked from commit c9dbb1df3b5c06ba122cacaf35b17cb53c6be3c6)

Change-Id: Ib5d82bde2e4a031c1cab0ea6116925ef99d9f07f

8 years agoRevert "Hold dex caches live in class table"
Brian Carlstrom [Sat, 4 Jun 2016 00:22:32 +0000 (00:22 +0000)]
Revert "Hold dex caches live in class table"

This reverts commit d6d49e56c2b7b11f474acb80cb02bb1fe9b7861e.

Bug: 29083330

(cherry picked from commit f102faf1bcbdb2149e3e7bf27b1819f621b7894b)

Change-Id: Id0c921bd6fe422159f8daa598dc8e7c9ed6eca47

8 years agoMerge "Revert "Revert some flaky unloading""
Treehugger Robot [Mon, 6 Jun 2016 19:17:42 +0000 (19:17 +0000)]
Merge "Revert "Revert some flaky unloading""

8 years agoART: ArrayGet hoisting restriction added.
Anton Shamin [Mon, 16 May 2016 10:44:13 +0000 (16:44 +0600)]
ART: ArrayGet hoisting restriction added.

Currently if we hoist ArrayGet from loop there is no guarantee
that insn will be executed at runtime. Because of that we could
face issues like crashes in generated code.

This patch introduces restriction for ArrayGet hoisting. We say
that ArrayGet execution is guaranteed at least one time if its bb
dominates all exit blocks.

Change-Id: I9f72c0f4c33b358341109238bea46cb5a82f490f
Signed-off-by: Anton Shamin <anton.shamin@intel.com>
8 years agoRevert "Revert some flaky unloading"
Alex Light [Mon, 6 Jun 2016 17:45:28 +0000 (10:45 -0700)]
Revert "Revert some flaky unloading"

This reverts commit 73ad16e0193866d36dbd4088ac77fa5d4ceec334.

With this code it is possible that during testing we will race the
final shutdown of some threads (i.e. returning to thread_start after
signaling thread has been finished) with the unloading of libart.so by
libnativehelper. This could cause crashes. By ensuring that libart.so
code is not unloaded in libnativehelper we fix the issue with this
patch.

Bug: 28406866

Change-Id: Ic67118c2a4e743941402b17b6bbfe4cce441f68f

8 years agoMerge "ART: Improve JitProfiling perf in mips/mips64 mterp."
Bill Buzbee [Mon, 6 Jun 2016 16:48:43 +0000 (16:48 +0000)]
Merge "ART: Improve JitProfiling perf in mips/mips64 mterp."

8 years agoMerge "Revert "Fix ArtMethod::GetInvokeType for static methods on interfaces.""
Nicolas Geoffray [Mon, 6 Jun 2016 15:52:19 +0000 (15:52 +0000)]
Merge "Revert "Fix ArtMethod::GetInvokeType for static methods on interfaces.""

8 years agoRevert "Fix ArtMethod::GetInvokeType for static methods on interfaces."
Nicolas Geoffray [Mon, 6 Jun 2016 15:51:58 +0000 (15:51 +0000)]
Revert "Fix ArtMethod::GetInvokeType for static methods on interfaces."

bug:29089267
bug:27521545

Fails some DHECKs.

This reverts commit 808067335b228d7b50ad84123d3c8ecb7aeeb200.

Change-Id: I0e768ce85be593e3f50fd02abc29aa34f2be3562

8 years agoMerge "Fix ArtMethod::GetInvokeType for static methods on interfaces."
Treehugger Robot [Mon, 6 Jun 2016 12:28:28 +0000 (12:28 +0000)]
Merge "Fix ArtMethod::GetInvokeType for static methods on interfaces."

8 years agoFix ArtMethod::GetInvokeType for static methods on interfaces.
Nicolas Geoffray [Thu, 2 Jun 2016 14:55:48 +0000 (15:55 +0100)]
Fix ArtMethod::GetInvokeType for static methods on interfaces.

And avoid calling ResolveMethod in the JIT, since it already
knows that method.

bug:29089267
bug:27521545

(cherry picked from commit 2dc77ecf375882f51ff7c09712c05b80e58abb6b)

Change-Id: I36084b1f207317452c42fdfc8ffa4d8c721d2f76

8 years agoMerge "Revert "Revert "Temporarily disable dex cache array emptyness DCHECK"""
Nicolas Geoffray [Mon, 6 Jun 2016 09:24:27 +0000 (09:24 +0000)]
Merge "Revert "Revert "Temporarily disable dex cache array emptyness DCHECK"""

8 years agoRevert "Revert "Temporarily disable dex cache array emptyness DCHECK""
Nicolas Geoffray [Mon, 6 Jun 2016 09:24:01 +0000 (09:24 +0000)]
Revert "Revert "Temporarily disable dex cache array emptyness DCHECK""

This fix has been reverted.

Bug: 29083330

This reverts commit 06cd763b7d2a7511ea4a54b52b2931e57f3522d3.

Change-Id: I5382c872caeb7e699de41acaa54ac3ee9f0543e0

8 years agoMIPS32: Improve method entry/exit code
Alexey Frunze [Sat, 4 Jun 2016 05:51:46 +0000 (22:51 -0700)]
MIPS32: Improve method entry/exit code

Improvements:
- the stack frame is (de)allocated in one step instead of two
- callee-saved FPU registers are 8-byte aligned within the frame,
  allowing a single ldc1/sdc1 instruction to load/store an FPU
  register without causing exceptions due to misaligned accesses
- the return address register, RA, is restored early for better
  instruction scheduling

Change-Id: I556b139c62839490a9fdbce8c5e6e3e2d1cc7bb7

8 years agoART: Improve JitProfiling perf in mips/mips64 mterp.
Douglas Leung [Sat, 4 Jun 2016 01:05:35 +0000 (18:05 -0700)]
ART: Improve JitProfiling perf in mips/mips64 mterp.

Change-Id: I4e1a214d92bd17ebd0a9b595e2eca2d7dcc13758

8 years agoMerge "Do not place null check from unresolved field access."
Aart Bik [Fri, 3 Jun 2016 22:54:17 +0000 (22:54 +0000)]
Merge "Do not place null check from unresolved field access."

8 years agoDo not place null check from unresolved field access.
Aart Bik [Fri, 3 Jun 2016 00:53:58 +0000 (17:53 -0700)]
Do not place null check from unresolved field access.

Rationale:
These accesses go though the runtime anyway where various
checks are done, including null check. Since particular
checks, like access checks, need to occur prior to the
null check (to ensure link errors are not masked by
a null reference), the explicit null check should not
occur in the HIR.

BUG=29068831

Change-Id: I30fc9cb8cf4993e4176e235ceba3a38aef98d503

8 years agoMerge "Revert "Temporarily disable dex cache array emptyness DCHECK""
Mathieu Chartier [Fri, 3 Jun 2016 18:08:20 +0000 (18:08 +0000)]
Merge "Revert "Temporarily disable dex cache array emptyness DCHECK""

8 years agoMerge "Fix an issue of partial fragment deoptimization"
Mingyao Yang [Fri, 3 Jun 2016 18:01:01 +0000 (18:01 +0000)]
Merge "Fix an issue of partial fragment deoptimization"

8 years agoRevert "Temporarily disable dex cache array emptyness DCHECK"
Mathieu Chartier [Fri, 3 Jun 2016 17:58:45 +0000 (10:58 -0700)]
Revert "Temporarily disable dex cache array emptyness DCHECK"

Bug: 29083330

This reverts commit 7b1541f4aecdc4c2878437ac3d46f2e74eacf0f1.

8 years agoMerge "Hold dex caches live in class table"
Mathieu Chartier [Fri, 3 Jun 2016 17:53:09 +0000 (17:53 +0000)]
Merge "Hold dex caches live in class table"

8 years agoMerge "Revert "Revert "Make the boot image non-debuggable."""
Treehugger Robot [Fri, 3 Jun 2016 14:06:02 +0000 (14:06 +0000)]
Merge "Revert "Revert "Make the boot image non-debuggable."""

8 years agoRevert "Revert "Make the boot image non-debuggable.""
Vladimir Marko [Fri, 3 Jun 2016 13:08:23 +0000 (13:08 +0000)]
Revert "Revert "Make the boot image non-debuggable.""

The fix for b/29043547 has been submitted.

Bug: 28769520

This reverts commit cc98f634847914d306d9c1ae16c46b95e0645270.

Change-Id: I6ed511c0024ecaee75740e2847d1be20c4fb07dd

8 years agoMerge "Delay dex-to-dex compilation until Optimizing is done."
Vladimir Marko [Fri, 3 Jun 2016 12:42:04 +0000 (12:42 +0000)]
Merge "Delay dex-to-dex compilation until Optimizing is done."

8 years agoMerge "Refactor handling of input records."
Vladimir Marko [Fri, 3 Jun 2016 12:34:22 +0000 (12:34 +0000)]
Merge "Refactor handling of input records."

8 years agoDelay dex-to-dex compilation until Optimizing is done.
Vladimir Marko [Wed, 1 Jun 2016 17:38:43 +0000 (18:38 +0100)]
Delay dex-to-dex compilation until Optimizing is done.

This fixes a race between inlining in the Optimizing
backend and dex-to-dex quickening where the Optimizing can
read the non-quickened opcode and then the quickened field
index or vtable index and look up the wrong field or method.
Even if we such tearing of the dex instruction does not
happen, the possible reordering of dex-to-dex and Optimizing
compilation makes the final oat file non-deterministic.

Also, remove VerificationResults::RemoveVerifiedMethod() as
we have only the Optimizing backend now and as such it was
dead code and would have interfered with this change.

Bug: 29043547
Bug: 29089975
Change-Id: I8389927d35dcacaf2f99c2153f055857036c8129

8 years agoFix an issue of partial fragment deoptimization
Mingyao Yang [Fri, 3 Jun 2016 00:01:02 +0000 (17:01 -0700)]
Fix an issue of partial fragment deoptimization

If the interpreter bridge returns to the instrumentation exit stub,
we need to let the stub makes the decision whether the calling code
is deoptimizeable or not since the stub knows the real return pc.

Bug: 28769520
Change-Id: I262d1222e50a1ccbcb3675d05dcab414dc242a28

8 years agoHold dex caches live in class table
Mathieu Chartier [Thu, 2 Jun 2016 18:48:30 +0000 (11:48 -0700)]
Hold dex caches live in class table

Prevents temporary dex caches being unloaded for the same dex file.
Usually this is OK, but if someone resolved a string in that dex
cache, it could leave stale pointers in BSS. Also it can use extra
memory in linear alloc if we allocate dex cache arrays multiple
times.

Bug: 29083330
Change-Id: Ia44668f013ceef1f5eb80f653a48d0f8004548c9

8 years agoMerge "Exit 0 on success even if --never-clean is passed"
Alex Light [Thu, 2 Jun 2016 19:57:59 +0000 (19:57 +0000)]
Merge "Exit 0 on success even if --never-clean is passed"

8 years agoMerge "Stop creating $ANDROID_BUILD_TOP/{&&,mkdir} directories."
Alex Light [Thu, 2 Jun 2016 19:50:09 +0000 (19:50 +0000)]
Merge "Stop creating $ANDROID_BUILD_TOP/{&&,mkdir} directories."