OSDN Git Service

android-x86/art.git
9 years agoam 8f861e39: Merge "ART: DCE should know that array-length can throw NPE"
Vladimir Marko [Thu, 16 Jul 2015 13:01:33 +0000 (13:01 +0000)]
am 8f861e39: Merge "ART: DCE should know that array-length can throw NPE"

* commit '8f861e399c96abd8f1bc7c8c585d53b0904f371a':
  ART: DCE should know that array-length can throw NPE

9 years agoMerge "ART: DCE should know that array-length can throw NPE"
Vladimir Marko [Thu, 16 Jul 2015 12:39:03 +0000 (12:39 +0000)]
Merge "ART: DCE should know that array-length can throw NPE"

9 years agoART: DCE should know that array-length can throw NPE
Serguei Katkov [Tue, 14 Jul 2015 13:04:48 +0000 (19:04 +0600)]
ART: DCE should know that array-length can throw NPE

array-length can throw NPE so it should be taking into account.

Bug: 22521944
Change-Id: I6f961560ccbbf81f57f1c597828f2ee18e2c3054
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoam fec9d09b: Merge "Fix the documentation of all-run-test-names."
Roland Levillain [Thu, 16 Jul 2015 10:10:31 +0000 (10:10 +0000)]
am fec9d09b: Merge "Fix the documentation of all-run-test-names."

* commit 'fec9d09bf7d2d54048b1df8e3c24a210e58dbc84':
  Fix the documentation of all-run-test-names.

9 years agoam 00b5c617: Merge "Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo."
Roland Levillain [Thu, 16 Jul 2015 10:10:29 +0000 (10:10 +0000)]
am 00b5c617: Merge "Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo."

* commit '00b5c6175210e3372920086818a9d2aa15216eda':
  Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo.

9 years agoMerge "Fix the documentation of all-run-test-names."
Roland Levillain [Thu, 16 Jul 2015 09:02:47 +0000 (09:02 +0000)]
Merge "Fix the documentation of all-run-test-names."

9 years agoMerge "Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo."
Roland Levillain [Thu, 16 Jul 2015 08:56:28 +0000 (08:56 +0000)]
Merge "Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo."

9 years agoam a14e2e78: Merge "Move MarkObject to mark_sweep.cc"
Mathieu Chartier [Thu, 16 Jul 2015 03:09:40 +0000 (03:09 +0000)]
am a14e2e78: Merge "Move MarkObject to mark_sweep.cc"

* commit 'a14e2e780230b0c2f8e94445a4c8d21f19d447cf':
  Move MarkObject to mark_sweep.cc

9 years agoam 2e7ccf9a: Merge "Enable ASan annotations in ART based on macro setting."
Evgenii Stepanov [Thu, 16 Jul 2015 03:09:38 +0000 (03:09 +0000)]
am 2e7ccf9a: Merge "Enable ASan annotations in ART based on macro setting."

* commit '2e7ccf9aeb7212c96e2081b66f85b67856b8825a':
  Enable ASan annotations in ART based on macro setting.

9 years agoMerge "Move MarkObject to mark_sweep.cc"
Mathieu Chartier [Thu, 16 Jul 2015 03:01:24 +0000 (03:01 +0000)]
Merge "Move MarkObject to mark_sweep.cc"

9 years agoMove MarkObject to mark_sweep.cc
Mathieu Chartier [Thu, 16 Jul 2015 02:58:45 +0000 (19:58 -0700)]
Move MarkObject to mark_sweep.cc

Maybe fixes mac build.

Change-Id: I7c018922be8e159001498d30682435643bed1dfd

9 years agoMerge "Enable ASan annotations in ART based on macro setting."
Evgenii Stepanov [Thu, 16 Jul 2015 02:54:54 +0000 (02:54 +0000)]
Merge "Enable ASan annotations in ART based on macro setting."

9 years agoEnable ASan annotations in ART based on macro setting.
Evgenii Stepanov [Thu, 16 Jul 2015 00:40:14 +0000 (17:40 -0700)]
Enable ASan annotations in ART based on macro setting.

This is a quick hack to remove ASan annotations from SANITIZE_TARGET
build, because they are breaking everything - it looks like we forget
to clean redzones from a page before releasing it to the system, and
some unrelated code runs into them later.

We will add some way to control this from the build system later,
or just fix the underlying issue and re-enable by default.

Bug: 21785137
Change-Id: If79e2455e246dc39355f2758323b249ac20b6144

9 years agoam 34ac23dc: Merge "Address some GC comments"
Mathieu Chartier [Wed, 15 Jul 2015 23:03:41 +0000 (23:03 +0000)]
am 34ac23dc: Merge "Address some GC comments"

* commit '34ac23dc965bf6ca24dd2e9bb115f66ff1fc191e':
  Address some GC comments

9 years agoMerge "Address some GC comments"
Mathieu Chartier [Wed, 15 Jul 2015 22:51:55 +0000 (22:51 +0000)]
Merge "Address some GC comments"

9 years agoAddress some GC comments
Mathieu Chartier [Wed, 15 Jul 2015 21:24:07 +0000 (14:24 -0700)]
Address some GC comments

Follow-up from:
https://android-review.googlesource.com/#/c/159650/

Change-Id: Id14f29b4ce5b70b63fcb3e74f8503ae60a3ae444

9 years agoam e5abf070: Merge "Use SuspendAllInternal for FlipThreadRoots"
Mathieu Chartier [Wed, 15 Jul 2015 18:04:00 +0000 (18:04 +0000)]
am e5abf070: Merge "Use SuspendAllInternal for FlipThreadRoots"

* commit 'e5abf0702555f9f4284a96e923f5c331561974e4':
  Use SuspendAllInternal for FlipThreadRoots

9 years agoMerge "Use SuspendAllInternal for FlipThreadRoots"
Mathieu Chartier [Wed, 15 Jul 2015 17:52:46 +0000 (17:52 +0000)]
Merge "Use SuspendAllInternal for FlipThreadRoots"

9 years agoUse SuspendAllInternal for FlipThreadRoots
Mathieu Chartier [Wed, 15 Jul 2015 17:24:16 +0000 (10:24 -0700)]
Use SuspendAllInternal for FlipThreadRoots

Fix FlipThreadRoots to wait until all the threads are suspended by
using SuspendAllInternal. Since running threads no longer hold the
mutator lock as shared held, doing an exclusive lock will not block
if the threads are not suspended. Also implemented MarkHeapReference
which is used to preserve soft references.

Fixes CC tests.

Change-Id: I4b059238f4249cf297e21ae918becd029fe26527

9 years agoFix the documentation of all-run-test-names.
Roland Levillain [Wed, 15 Jul 2015 13:09:20 +0000 (14:09 +0100)]
Fix the documentation of all-run-test-names.

Change-Id: I160f57bb2244a79e5eaf5e87b9f0ac94747adcd1

9 years agoam 12cfc600: Merge "Clean up after verifier changes wrt. conflict/undefined reg."
Vladimir Marko [Wed, 15 Jul 2015 17:19:13 +0000 (17:19 +0000)]
am 12cfc600: Merge "Clean up after verifier changes wrt. conflict/undefined reg."

* commit '12cfc600d21ebf97373be59f1bd538b68687b5bf':
  Clean up after verifier changes wrt. conflict/undefined reg.

9 years agoMerge "Clean up after verifier changes wrt. conflict/undefined reg."
Vladimir Marko [Wed, 15 Jul 2015 17:06:39 +0000 (17:06 +0000)]
Merge "Clean up after verifier changes wrt. conflict/undefined reg."

9 years agoClean up after verifier changes wrt. conflict/undefined reg.
Vladimir Marko [Wed, 15 Jul 2015 09:55:17 +0000 (10:55 +0100)]
Clean up after verifier changes wrt. conflict/undefined reg.

Remove unused path in RegType::Merge() and compare undefined
type as pointers. Reduce the number of edges to merge in
b_22331663.smali to just those that we really want to test.

Bug: 22331663
Change-Id: I16b83c4c97fd40be9dd246ef13ccda6e924eef60

9 years agoUse art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo.
Roland Levillain [Wed, 15 Jul 2015 13:30:26 +0000 (14:30 +0100)]
Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo.

Change-Id: Id50fc029e83bf2c16bd991ea82acd3b355c29127

9 years agoam 5c03f369: Merge "ART: Build SSA form when try/catch is present"
David Brazdil [Wed, 15 Jul 2015 15:36:31 +0000 (15:36 +0000)]
am 5c03f369: Merge "ART: Build SSA form when try/catch is present"

* commit '5c03f3698f5e2e0d762e2e15ec00310b6cdab4fe':
  ART: Build SSA form when try/catch is present

9 years agoMerge "ART: Build SSA form when try/catch is present"
David Brazdil [Wed, 15 Jul 2015 15:22:01 +0000 (15:22 +0000)]
Merge "ART: Build SSA form when try/catch is present"

9 years agoART: Build SSA form when try/catch is present
David Brazdil [Mon, 6 Jul 2015 10:48:53 +0000 (11:48 +0100)]
ART: Build SSA form when try/catch is present

This patch implements support for try/catch in the SsaBuilder.
Values of locals are propagated from throwing sites inside try
blocks to their respective catch blocks and phis ("catch phis")
are created when necessary.

Change-Id: I0736565c2c4ff3f9f0924b6e3a785a50023f875a

9 years agoam 045da88b: Merge "Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMet...
Nicolas Geoffray [Wed, 15 Jul 2015 10:17:40 +0000 (10:17 +0000)]
am 045da88b: Merge "Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""""

* commit '045da88bd0230ddf48aaf037b3d6c16fbb97ba65':
  Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""""

9 years agoam 172c8f71: Merge "Avoid unexpected conversions to ArrayRef."
Vladimir Marko [Wed, 15 Jul 2015 10:17:38 +0000 (10:17 +0000)]
am 172c8f71: Merge "Avoid unexpected conversions to ArrayRef."

* commit '172c8f71a866931728c389a46ae9e69bc4c04a13':
  Avoid unexpected conversions to ArrayRef.

9 years agoMerge "Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after...
Nicolas Geoffray [Wed, 15 Jul 2015 09:47:00 +0000 (09:47 +0000)]
Merge "Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""""

9 years agoRevert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening...
Nicolas Geoffray [Tue, 14 Jul 2015 10:37:54 +0000 (11:37 +0100)]
Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""""

This reverts commit ed6195a514e3253576af27ea9ba13038509d29ac.

Change-Id: Icb58854301e8982147cdebe3edf2e0d9e0a63a56

9 years agoMerge "Avoid unexpected conversions to ArrayRef."
Vladimir Marko [Wed, 15 Jul 2015 08:59:43 +0000 (08:59 +0000)]
Merge "Avoid unexpected conversions to ArrayRef."

9 years agoam 76ca8206: Merge "ART: Fix mac build"
Andreas Gampe [Wed, 15 Jul 2015 06:02:41 +0000 (06:02 +0000)]
am 76ca8206: Merge "ART: Fix mac build"

* commit '76ca82063ac62488fefb0b12d40026f4ebb2e198':
  ART: Fix mac build

9 years agoMerge "ART: Fix mac build"
Andreas Gampe [Wed, 15 Jul 2015 05:53:03 +0000 (05:53 +0000)]
Merge "ART: Fix mac build"

9 years agoam 19315c12: Merge "Clean up GC callbacks to be virtual methods"
Mathieu Chartier [Wed, 15 Jul 2015 01:13:26 +0000 (01:13 +0000)]
am 19315c12: Merge "Clean up GC callbacks to be virtual methods"

* commit '19315c121047edcedf2828fea50f3208d799eca2':
  Clean up GC callbacks to be virtual methods

9 years agoART: Fix mac build
Andreas Gampe [Wed, 15 Jul 2015 00:57:43 +0000 (17:57 -0700)]
ART: Fix mac build

Fix Clang assembler bugs introduced in commit
3031c8da0c5009183f770b005c245f9bf2a4d01b.

Change-Id: I460c7c1b8f4380244925d248b90c88239540527a

9 years agoMerge "Clean up GC callbacks to be virtual methods"
Mathieu Chartier [Wed, 15 Jul 2015 01:02:08 +0000 (01:02 +0000)]
Merge "Clean up GC callbacks to be virtual methods"

9 years agoam 70451aea: Merge "Change phony targets to set dalvik.vm.usejit properly"
Mathieu Chartier [Wed, 15 Jul 2015 00:32:47 +0000 (00:32 +0000)]
am 70451aea: Merge "Change phony targets to set dalvik.vm.usejit properly"

* commit '70451aea314de4743d2d15a48d33201a897c190d':
  Change phony targets to set dalvik.vm.usejit properly

9 years agoMerge "Change phony targets to set dalvik.vm.usejit properly"
Mathieu Chartier [Wed, 15 Jul 2015 00:20:15 +0000 (00:20 +0000)]
Merge "Change phony targets to set dalvik.vm.usejit properly"

9 years agoChange phony targets to set dalvik.vm.usejit properly
Mathieu Chartier [Tue, 14 Jul 2015 23:59:23 +0000 (16:59 -0700)]
Change phony targets to set dalvik.vm.usejit properly

Bug: 22408082
Change-Id: I87d75902fef9d695c034c27ea4e25448c23a6924

9 years agoClean up GC callbacks to be virtual methods
Mathieu Chartier [Mon, 13 Jul 2015 21:35:43 +0000 (14:35 -0700)]
Clean up GC callbacks to be virtual methods

Change-Id: Ia08034a4e5931c4fcb329c3bd3c4b1f301135735

9 years agoam 8ae35889: Merge "Add ART_TEST_DEBUG_GC to help with debugging gc."
Hiroshi Yamauchi [Tue, 14 Jul 2015 20:49:32 +0000 (20:49 +0000)]
am 8ae35889: Merge "Add ART_TEST_DEBUG_GC to help with debugging gc."

* commit '8ae3588989ea99d8c60f885e3d830e6e0c87ff5f':
  Add ART_TEST_DEBUG_GC to help with debugging gc.

9 years agoMerge "Add ART_TEST_DEBUG_GC to help with debugging gc."
Hiroshi Yamauchi [Tue, 14 Jul 2015 20:37:17 +0000 (20:37 +0000)]
Merge "Add ART_TEST_DEBUG_GC to help with debugging gc."

9 years agoAdd ART_TEST_DEBUG_GC to help with debugging gc.
Hiroshi Yamauchi [Tue, 14 Jul 2015 19:20:30 +0000 (12:20 -0700)]
Add ART_TEST_DEBUG_GC to help with debugging gc.

ART_TEST_DEBUG_GC is meant to be used to easily set the GC
configuration to the one that currently needs debugging in a
continuous test.

Bug: 19894268
Change-Id: I566e44360fc4cd47b3448e194cc8c16c9f498b7f

9 years agoam 34fcff08: Merge "ART: Remove art_quick_invoke_interface_trampoline"
Andreas Gampe [Tue, 14 Jul 2015 18:39:08 +0000 (18:39 +0000)]
am 34fcff08: Merge "ART: Remove art_quick_invoke_interface_trampoline"

* commit '34fcff08a9ecc981f5967b9cc8111a5fac555282':
  ART: Remove art_quick_invoke_interface_trampoline

9 years agoAvoid unexpected conversions to ArrayRef.
Vladimir Marko [Tue, 14 Jul 2015 17:58:59 +0000 (18:58 +0100)]
Avoid unexpected conversions to ArrayRef.

Make single-parameter constructors explicit, except
for the default copy constructor.

Change-Id: If7c8db643b22a4c36e244830154fc699b39c9016

9 years agoMerge "ART: Remove art_quick_invoke_interface_trampoline"
Andreas Gampe [Tue, 14 Jul 2015 18:26:04 +0000 (18:26 +0000)]
Merge "ART: Remove art_quick_invoke_interface_trampoline"

9 years agoART: Remove art_quick_invoke_interface_trampoline
Andreas Gampe [Tue, 14 Jul 2015 03:11:06 +0000 (20:11 -0700)]
ART: Remove art_quick_invoke_interface_trampoline

The function has only been used by the IMT conflict resolution
trampoline for a while. Merge the two, which saves a branch.

Change-Id: I2f8c9204adf839ddc5459cc04e70d98f858110a1

9 years agoam 01c2b053: Merge "Fix mac build"
Mathieu Chartier [Tue, 14 Jul 2015 17:20:45 +0000 (17:20 +0000)]
am 01c2b053: Merge "Fix mac build"

* commit '01c2b053aa74d9bd461a29e0c252f7a8ce3f115a':
  Fix mac build

9 years agoam 68953ebf: Merge "Add an option to run art tests with strace."
Hiroshi Yamauchi [Tue, 14 Jul 2015 17:20:43 +0000 (17:20 +0000)]
am 68953ebf: Merge "Add an option to run art tests with strace."

* commit '68953ebf53e3ef7e0fd2c5beadfa7a2437eebc60':
  Add an option to run art tests with strace.

9 years agoMerge "Fix mac build"
Mathieu Chartier [Tue, 14 Jul 2015 17:10:32 +0000 (17:10 +0000)]
Merge "Fix mac build"

9 years agoMerge "Add an option to run art tests with strace."
Hiroshi Yamauchi [Tue, 14 Jul 2015 17:08:50 +0000 (17:08 +0000)]
Merge "Add an option to run art tests with strace."

9 years agoFix mac build
Mathieu Chartier [Tue, 14 Jul 2015 17:05:45 +0000 (10:05 -0700)]
Fix mac build

Untested.

Change-Id: I1b7803f2fdcd7f509614aa9d3dce414e50a6119d

9 years agoam d1665b7a: Merge "Revert "Revert "Fuse long and FP compare & condition on ARM64...
Roland Levillain [Tue, 14 Jul 2015 10:14:46 +0000 (10:14 +0000)]
am d1665b7a: Merge "Revert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing."""

* commit 'd1665b7a689086ec5b33a69a05313c46ea1a95e4':
  Revert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing.""

9 years agoMerge "Revert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing."""
Roland Levillain [Tue, 14 Jul 2015 09:25:42 +0000 (09:25 +0000)]
Merge "Revert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing."""

9 years agoam c6f3439b: Merge "ART: JNI thread state transition optimization"
Mathieu Chartier [Tue, 14 Jul 2015 02:02:35 +0000 (02:02 +0000)]
am c6f3439b: Merge "ART: JNI thread state transition optimization"

* commit 'c6f3439b67962584cfb764133e192c3317f0e1fc':
  ART: JNI thread state transition optimization

9 years agoMerge "ART: JNI thread state transition optimization"
Mathieu Chartier [Tue, 14 Jul 2015 01:47:39 +0000 (01:47 +0000)]
Merge "ART: JNI thread state transition optimization"

9 years agoam e978aba2: Merge "Disable ASan on Thread::InstallImplicitProtection."
Evgenii Stepanov [Tue, 14 Jul 2015 01:41:20 +0000 (01:41 +0000)]
am e978aba2: Merge "Disable ASan on Thread::InstallImplicitProtection."

* commit 'e978aba24094cce90453ad3294b8c4536ee8e4b4':
  Disable ASan on Thread::InstallImplicitProtection.

9 years agoMerge "Disable ASan on Thread::InstallImplicitProtection."
Evgenii Stepanov [Tue, 14 Jul 2015 01:28:04 +0000 (01:28 +0000)]
Merge "Disable ASan on Thread::InstallImplicitProtection."

9 years agoam 0541502e: Merge "Generalize Valgrind annotations in ART to support ASan."
Evgenii Stepanov [Tue, 14 Jul 2015 01:02:57 +0000 (01:02 +0000)]
am 0541502e: Merge "Generalize Valgrind annotations in ART to support ASan."

* commit '0541502e6d9d0efa50aa333db32898a0664512c3':
  Generalize Valgrind annotations in ART to support ASan.

9 years agoDisable ASan on Thread::InstallImplicitProtection.
Evgenii Stepanov [Mon, 13 Jul 2015 17:41:57 +0000 (10:41 -0700)]
Disable ASan on Thread::InstallImplicitProtection.

This function reads random stack locations and confuses ASan.

Bug: 21785137
Change-Id: Iaaee6032a651618e5275ab46e6e8f886df60a5d0

9 years agoMerge "Generalize Valgrind annotations in ART to support ASan."
Evgenii Stepanov [Tue, 14 Jul 2015 00:47:06 +0000 (00:47 +0000)]
Merge "Generalize Valgrind annotations in ART to support ASan."

9 years agoGeneralize Valgrind annotations in ART to support ASan.
Evgenii Stepanov [Wed, 20 May 2015 19:30:59 +0000 (12:30 -0700)]
Generalize Valgrind annotations in ART to support ASan.

Also add redzones around non-fixed mem_map(s).
Also extend -Wframe-larger-than limit to enable arm64 ASan build.

Change-Id: Ie572481a25fead59fc8978d2c317a33ac418516c

9 years agoAdd an option to run art tests with strace.
Hiroshi Yamauchi [Tue, 14 Jul 2015 00:11:22 +0000 (17:11 -0700)]
Add an option to run art tests with strace.

Bug: 19894268
Change-Id: I0a315a30e4e7d6d497b21205dc2a2b18b2170328

9 years agoam 5b1eea0a: Merge "Thread-local mark stacks for the CC collector."
Hiroshi Yamauchi [Mon, 13 Jul 2015 23:04:44 +0000 (23:04 +0000)]
am 5b1eea0a: Merge "Thread-local mark stacks for the CC collector."

* commit '5b1eea0a6c90e6e82393cdb7337f0c2bb05637d9':
  Thread-local mark stacks for the CC collector.

9 years agoART: JNI thread state transition optimization
Yu Li [Mon, 29 Jun 2015 02:50:03 +0000 (10:50 +0800)]
ART: JNI thread state transition optimization

This patch improves the JNI performance by removing the explicit acquiring and
releasing the mutator lock when a thread state transits between suspended and
runnable states.

The functions responsible for changing the state were found to be the costliest
part of the JNI. Originally, a thread needs to acquire a shared mutator lock by
a CAS instruction when entering the runnable state and also needs to release
the lock by a CAS when entering the native state from runnable. This patch
removes these CAS operations when a thread state transits between suspended and
runnable. A thread in the runnable state is considered to have shared ownership
of the mutator lock and therefore transitions in and out of the runnable state
have associated implication on the mutator lock ownership. Meanwhile, a barrier
is added to control suspending all threads from running.

JNI transition overhead was reduced by 25% on IA platform and by 17% on ARM
platform by this patch, while it has little impact on GC pause time (measured
with "suspend all histogram").

Change-Id: Icee95d8ffff1bbfc95309a41cc48836536fec689
Signed-off-by: Yu, Li <yu.l.li@intel.com>
Signed-off-by: Haitao, Feng <haitao.feng@intel.com>
Signed-off-by: Lei, Li <lei.l.li@intel.com>
9 years agoMerge "Thread-local mark stacks for the CC collector."
Hiroshi Yamauchi [Mon, 13 Jul 2015 22:51:39 +0000 (22:51 +0000)]
Merge "Thread-local mark stacks for the CC collector."

9 years agoThread-local mark stacks for the CC collector.
Hiroshi Yamauchi [Wed, 17 Jun 2015 01:29:23 +0000 (18:29 -0700)]
Thread-local mark stacks for the CC collector.

Thread-local mark stacks are assigned to mutators where they push
references in read barriers to reduce the (CAS) synchronization cost
in a global mark stack/queue.

We step through three mark stack modes (thread-local, shared,
GC-exclusive) and use per-thread flags to disable/enable system weak
accesses (only for the CC collector) instead of the existing global
one to safely perform the marking phase. The reasons are 1)
thread-local mark stacks for mutators need to be revoked using a
checkpoint to avoid races (incorrectly leaving a reference on mark
stacks) when terminating marking, and 2) we can’t use a checkpoint
while system weak accesses are disabled (or a deadlock would
happen). More details are described in the code comments.

Performance improvements in Ritzperf EAAC: a ~2.8% improvement
(13290->12918) in run time and a ~23% improvement (51.6s->39.8s) in
the total GC time on N5.

Bug: 12687968
Change-Id: I5d234d7e48bf115cd773d38bdb62ad24ce9116c7

9 years agoam 24db1bc5: Merge "Fix cfi information for x86."
Christopher Ferris [Mon, 13 Jul 2015 20:51:35 +0000 (20:51 +0000)]
am 24db1bc5: Merge "Fix cfi information for x86."

* commit '24db1bc55bf8fb3240690436a229352453ae75e1':
  Fix cfi information for x86.

9 years agoMerge "Fix cfi information for x86."
Christopher Ferris [Mon, 13 Jul 2015 20:39:09 +0000 (20:39 +0000)]
Merge "Fix cfi information for x86."

9 years agoFix cfi information for x86.
Christopher Ferris [Mon, 13 Jul 2015 19:21:00 +0000 (12:21 -0700)]
Fix cfi information for x86.

With this change, I can now enable debug malloc fully.

Bug: 19071092
(cherry picked from commit 9f66589f3ca6055501c99333a19b69349b8f8568)

Change-Id: I04d477d0294d67c5e3a9d9147889bdffb9086bd4

9 years agoam cc22d7cd: Merge "ART: Fix DexFileVerifier try_items OoO validation"
Andreas Gampe [Mon, 13 Jul 2015 19:28:32 +0000 (19:28 +0000)]
am cc22d7cd: Merge "ART: Fix DexFileVerifier try_items OoO validation"

* commit 'cc22d7cde1062126aed90d314dcf675bd78e306e':
  ART: Fix DexFileVerifier try_items OoO validation

9 years agoMerge "ART: Fix DexFileVerifier try_items OoO validation"
Andreas Gampe [Mon, 13 Jul 2015 19:16:46 +0000 (19:16 +0000)]
Merge "ART: Fix DexFileVerifier try_items OoO validation"

9 years agoam f68c8545: Merge "Revert "Revert "Revert "Make dex2dex return a CompiledMethod...
Nicolas Geoffray [Mon, 13 Jul 2015 17:31:09 +0000 (17:31 +0000)]
am f68c8545: Merge "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""""

* commit 'f68c8545382925062da2b87169ca2b5314f0b431':
  Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""

9 years agoMerge "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening...
Nicolas Geoffray [Mon, 13 Jul 2015 17:02:42 +0000 (17:02 +0000)]
Merge "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""""

9 years agoRevert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""
Nicolas Geoffray [Mon, 13 Jul 2015 17:02:30 +0000 (17:02 +0000)]
Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""

Breaks again in some configurations I don't fully understand yet.

This reverts commit f075879649686e59b7a9065c5a061dbfdcdfbecc.

Change-Id: I0ac5533825e40b06462ee69b2740e4a96fb5c582

9 years agoART: Fix DexFileVerifier try_items OoO validation
Anestis Bechtsoudis [Sun, 12 Jul 2015 17:51:35 +0000 (12:51 -0500)]
ART: Fix DexFileVerifier try_items OoO validation

DexFileVerifier::CheckIntraCodeItem() implements an out of order
validation for CodeItem try_items.  try_items_size is validated for
sanity via CheckListSize() at dex_file_verifier.cc:800, although
handlers_size ULEB128 read (offset calculated from tries_size_) occurs
before at lines 797-798.

An out of bounds (wild) read will occur for invalid try_items_size at
parsed DEX file.

handlers_size read has been moved after try_items validation to resolve
this OoO issue.

Bug: 21307613
Bug: https://code.google.com/p/android/issues/detail?id=178592
Change-Id: I94d00819ee9a465f57ba9a1fdfdd356979e35ed7

9 years agoam 6fb5b1bd: Merge "Fix baseline for arm64."
Nicolas Geoffray [Mon, 13 Jul 2015 16:04:46 +0000 (16:04 +0000)]
am 6fb5b1bd: Merge "Fix baseline for arm64."

* commit '6fb5b1bdd5cfcc3c32fedd6539670b01b5cda9a2':
  Fix baseline for arm64.

9 years agoRevert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing.""
Roland Levillain [Mon, 13 Jul 2015 15:54:55 +0000 (15:54 +0000)]
Revert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing.""

This reverts commit bed50d2430e02a3d6b94972e8ab4873d7b3b8be0.

Bug: 21120453
Change-Id: I5e4aab2703966d9324ebde25bd8b83056fdb10ed

9 years agoMerge "Fix baseline for arm64."
Nicolas Geoffray [Mon, 13 Jul 2015 15:54:02 +0000 (15:54 +0000)]
Merge "Fix baseline for arm64."

9 years agoam f32521b1: Merge "ART: Don\'t nest indenters in oatdump."
Vladimir Marko [Mon, 13 Jul 2015 15:50:44 +0000 (15:50 +0000)]
am f32521b1: Merge "ART: Don\'t nest indenters in oatdump."

* commit 'f32521b18b3078b2fbd8f1e52d5da9375cd02cbc':
  ART: Don't nest indenters in oatdump.

9 years agoam 15c9881c: Merge "ART: Fix arm32 assembly stub CFI"
Andreas Gampe [Mon, 13 Jul 2015 15:50:42 +0000 (15:50 +0000)]
am 15c9881c: Merge "ART: Fix arm32 assembly stub CFI"

* commit '15c9881c7c480d0131099e436cff2f13ba50e5e3':
  ART: Fix arm32 assembly stub CFI

9 years agoFix baseline for arm64.
Nicolas Geoffray [Mon, 13 Jul 2015 14:55:26 +0000 (15:55 +0100)]
Fix baseline for arm64.

A HFakeString acts like a null constant. Other backends have
different code paths for handling it, so it was only arm64 failing.

Change-Id: Iba44d87c8d114b916404db0302574c7059143010

9 years agoMerge "ART: Don't nest indenters in oatdump."
Vladimir Marko [Mon, 13 Jul 2015 15:42:00 +0000 (15:42 +0000)]
Merge "ART: Don't nest indenters in oatdump."

9 years agoam d562cb13: Merge "Revert "Revert "Make dex2dex return a CompiledMethod after quicke...
Nicolas Geoffray [Mon, 13 Jul 2015 15:36:57 +0000 (15:36 +0000)]
am d562cb13: Merge "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""

* commit 'd562cb1347dbb673b6da830cac6fd9e0264d8b2b':
  Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""

9 years agoMerge "ART: Fix arm32 assembly stub CFI"
Andreas Gampe [Mon, 13 Jul 2015 15:35:27 +0000 (15:35 +0000)]
Merge "ART: Fix arm32 assembly stub CFI"

9 years agoMerge "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""
Nicolas Geoffray [Mon, 13 Jul 2015 15:17:37 +0000 (15:17 +0000)]
Merge "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""

9 years agoam af12baea: Merge "Re-enable run-test 449-checker-bce on MIPS64."
Roland Levillain [Mon, 13 Jul 2015 14:20:41 +0000 (14:20 +0000)]
am af12baea: Merge "Re-enable run-test 449-checker-bce on MIPS64."

* commit 'af12baeacf33b46a8b399f19735613539382229a':
  Re-enable run-test 449-checker-bce on MIPS64.

9 years agoam f7b3c6ed: Merge "Remove the --compiler-backend option from script."
Nicolas Geoffray [Mon, 13 Jul 2015 14:06:29 +0000 (14:06 +0000)]
am f7b3c6ed: Merge "Remove the --compiler-backend option from script."

* commit 'f7b3c6ed3a04e86dc285bac7da7e847e4674e41d':
  Remove the --compiler-backend option from script.

9 years agoMerge "Re-enable run-test 449-checker-bce on MIPS64."
Roland Levillain [Mon, 13 Jul 2015 14:06:20 +0000 (14:06 +0000)]
Merge "Re-enable run-test 449-checker-bce on MIPS64."

9 years agoMerge "Remove the --compiler-backend option from script."
Nicolas Geoffray [Mon, 13 Jul 2015 13:56:50 +0000 (13:56 +0000)]
Merge "Remove the --compiler-backend option from script."

9 years agoRevert "Revert "Make dex2dex return a CompiledMethod after quickening.""
Nicolas Geoffray [Mon, 13 Jul 2015 11:56:00 +0000 (11:56 +0000)]
Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""

This reverts commit 327c5ed30a1f016ef3e1bb26ea7b4abd34eb63b9.

Change-Id: I0dc5d92e5d1ef98830fbd3c40ec59a93f9e0422d

9 years agoRemove the --compiler-backend option from script.
Nicolas Geoffray [Mon, 13 Jul 2015 13:35:17 +0000 (14:35 +0100)]
Remove the --compiler-backend option from script.

Optimizing is now the default for apps.

Change-Id: I15617b881ac7a5a6fe7a281bfa61446bc60ef65d

9 years agoam 77d5e6bf: Merge "Change JIT code to use optimizing."
Nicolas Geoffray [Mon, 13 Jul 2015 13:28:59 +0000 (13:28 +0000)]
am 77d5e6bf: Merge "Change JIT code to use optimizing."

* commit '77d5e6bf4ea357d332762cde3aa3321a402eac75':
  Change JIT code to use optimizing.

9 years agoMerge "Change JIT code to use optimizing."
Nicolas Geoffray [Mon, 13 Jul 2015 13:18:41 +0000 (13:18 +0000)]
Merge "Change JIT code to use optimizing."

9 years agoRe-enable run-test 449-checker-bce on MIPS64.
Roland Levillain [Mon, 13 Jul 2015 12:33:04 +0000 (13:33 +0100)]
Re-enable run-test 449-checker-bce on MIPS64.

Bug: 21555893
Change-Id: I92e11637cc1f8f694e4d4138512cbcf47e22a249

9 years agoART: Don't nest indenters in oatdump.
Vladimir Marko [Fri, 26 Jun 2015 11:06:30 +0000 (12:06 +0100)]
ART: Don't nest indenters in oatdump.

Reduces the time taken by the oatdump_test by ~12s (15%)
on host and ~55s (9%) on N5.

Change-Id: I99bb16ff5f3640389815f1fe54379ca64eac071b

9 years agoam f185fb36: Merge "[optimizing] Don\'t rely on the verifier for String.<init>."
Nicolas Geoffray [Mon, 13 Jul 2015 12:05:24 +0000 (12:05 +0000)]
am f185fb36: Merge "[optimizing] Don\'t rely on the verifier for String.<init>."

* commit 'f185fb365e9faf58428762bace96d7729ea5bdbc':
  [optimizing] Don't rely on the verifier for String.<init>.

9 years agoam 5e094de2: Merge "Revert "Make dex2dex return a CompiledMethod after quickening.""
Nicolas Geoffray [Mon, 13 Jul 2015 12:05:22 +0000 (12:05 +0000)]
am 5e094de2: Merge "Revert "Make dex2dex return a CompiledMethod after quickening.""

* commit '5e094de24827292d8a13be2adbdcca54ae7d5ff0':
  Revert "Make dex2dex return a CompiledMethod after quickening."

9 years agoMerge "[optimizing] Don't rely on the verifier for String.<init>."
Nicolas Geoffray [Mon, 13 Jul 2015 11:55:19 +0000 (11:55 +0000)]
Merge "[optimizing] Don't rely on the verifier for String.<init>."