OSDN Git Service

android-x86/art.git
9 years agoFix broken tests.
Aart Bik [Mon, 20 Jul 2015 21:08:59 +0000 (14:08 -0700)]
Fix broken tests.

Rationale:
  (1) volatile field write/read need to apply to all
      to comply with Java memory model
  (2) clinit only needs only the write
  (3) added conservative assumptions to memory barrier
      (nothing broke, but this seems better)

Change-Id: I37787ec8f3f2c8d6166a94c57193fa4544ad3372

9 years agoMerge "Improved side effect analysis (field/array write/read)."
Aart Bik [Mon, 20 Jul 2015 17:56:35 +0000 (17:56 +0000)]
Merge "Improved side effect analysis (field/array write/read)."

9 years agoImproved side effect analysis (field/array write/read).
Aart Bik [Tue, 14 Jul 2015 23:07:00 +0000 (16:07 -0700)]
Improved side effect analysis (field/array write/read).

Rationale:
Types (int, float etc.) and access type (field vs. array)
can be used to disambiguate write/read side-effects analysis.
This directly improves e.g. dead code elimination and licm.

Change-Id: I371f6909a3f42bda13190a03f04c4a867bde1d06

9 years agoMerge "ART: Fix arm32 quick_invoke_stub CFI"
Andreas Gampe [Mon, 20 Jul 2015 15:25:55 +0000 (15:25 +0000)]
Merge "ART: Fix arm32 quick_invoke_stub CFI"

9 years agoMerge "Improve documentation of memory layouts in stack_map.h."
Roland Levillain [Mon, 20 Jul 2015 08:57:36 +0000 (08:57 +0000)]
Merge "Improve documentation of memory layouts in stack_map.h."

9 years agoART: Fix arm32 quick_invoke_stub CFI
Andreas Gampe [Sat, 18 Jul 2015 03:14:50 +0000 (20:14 -0700)]
ART: Fix arm32 quick_invoke_stub CFI

Follow-up to 4808846b2a8647a448aaa05d561a4f60b190196b.

Change-Id: I534ba39a4f59eaea9cfec8e81c944675284fc427

9 years agoMerge "Get non proxy method for StackDumpVisitor"
Mathieu Chartier [Sat, 18 Jul 2015 02:11:12 +0000 (02:11 +0000)]
Merge "Get non proxy method for StackDumpVisitor"

9 years agoGet non proxy method for StackDumpVisitor
Mathieu Chartier [Sat, 18 Jul 2015 01:46:32 +0000 (18:46 -0700)]
Get non proxy method for StackDumpVisitor

Fixes failing DCHECK.

Bug: 22553459
Change-Id: I6fe1012f9a5f8d29cb98bf25e3a279da51c5e1c0

9 years agoMerge "Change intern table to not use WaitHoldingLocks"
Mathieu Chartier [Sat, 18 Jul 2015 01:49:00 +0000 (01:49 +0000)]
Merge "Change intern table to not use WaitHoldingLocks"

9 years agoMerge "runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS"
Igor Murashkin [Sat, 18 Jul 2015 00:40:25 +0000 (00:40 +0000)]
Merge "runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS"

9 years agoruntime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS
Igor Murashkin [Sat, 11 Jul 2015 01:27:47 +0000 (18:27 -0700)]
runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS

Use ART_TEST_INTERPRETER_ACCESS_CHECKS=true to run all the tests through
the interpreter with access checks enabled. The normal interpreter tests
do not currently enable access checks, which means that a large part of
the interpreter codebase is untested.

The verifier will force every class into a soft fail mode if
-Xverify:softfail is used, thereby ensuring that if used along with the
interpreter (-Xint) that the interpret is always in access checks mode.

This is used alongside with --compile-filter=verify-at-runtime to
prevent the AOT compiler from putting down any code.

Change-Id: I35a10ed8c43d76fa96133cf01fdad497da387200

9 years agoChange intern table to not use WaitHoldingLocks
Mathieu Chartier [Mon, 13 Jul 2015 21:35:43 +0000 (14:35 -0700)]
Change intern table to not use WaitHoldingLocks

Bug: 22423014
Change-Id: I9e16b8cb4def72fff73f1783a182877105feb7aa

9 years agoMerge "Extended test with "cross-over arrays"."
Aart Bik [Fri, 17 Jul 2015 18:01:17 +0000 (18:01 +0000)]
Merge "Extended test with "cross-over arrays"."

9 years agoExtended test with "cross-over arrays".
Aart Bik [Fri, 17 Jul 2015 17:21:15 +0000 (10:21 -0700)]
Extended test with "cross-over arrays".

Rationale:
Since HIR is mostly sloppy with array references types, it is good
to extend the tests with some false invariant array references.

Bug: 22538329

Change-Id: I2ef22cbdc999c0d627590f76e7bac61984ac6ad6

9 years agoMerge "Fix FieldGap priority queue ordering bug."
Richard Uhler [Fri, 17 Jul 2015 15:22:10 +0000 (15:22 +0000)]
Merge "Fix FieldGap priority queue ordering bug."

9 years agoMerge "Improve Thumb2 branch/load-literal fixup performance."
Vladimir Marko [Fri, 17 Jul 2015 12:08:20 +0000 (12:08 +0000)]
Merge "Improve Thumb2 branch/load-literal fixup performance."

9 years agoMerge "Revert "Revert "Use the quickened metadata to compile -QUICK opcodes."""
Nicolas Geoffray [Fri, 17 Jul 2015 12:03:05 +0000 (12:03 +0000)]
Merge "Revert "Revert "Use the quickened metadata to compile -QUICK opcodes."""

9 years agoImprove Thumb2 branch/load-literal fixup performance.
Vladimir Marko [Tue, 14 Jul 2015 10:58:38 +0000 (11:58 +0100)]
Improve Thumb2 branch/load-literal fixup performance.

Replace per-Fixup dependents vectors with a single array
held by the assembler and referenced by the Fixups to avoid
the cost of many allocations with the default allocator.

This improves the compilation time of the boot.oat on N5,
AOSP ToT, by about ~3% as measured by the "Compile Time"
reported with --dump-timing (~2% of the "dex2oat took...").

Change-Id: I7121cdef32d9edc6d287e602d774ffe03f530d18

9 years agoRevert "Revert "Use the quickened metadata to compile -QUICK opcodes.""
Nicolas Geoffray [Fri, 17 Jul 2015 11:51:28 +0000 (11:51 +0000)]
Revert "Revert "Use the quickened metadata to compile -QUICK opcodes.""

This reverts commit 8ab9a9010f3929acbb6c671008b8885b762b01e1.

Change-Id: I1e654d5010ea2112982c3055fcb8c8f9c10e9ac8

9 years agoMerge "Reduce space filter threshold to 128."
Nicolas Geoffray [Fri, 17 Jul 2015 10:57:42 +0000 (10:57 +0000)]
Merge "Reduce space filter threshold to 128."

9 years agoReduce space filter threshold to 128.
Nicolas Geoffray [Fri, 17 Jul 2015 10:11:09 +0000 (11:11 +0100)]
Reduce space filter threshold to 128.

In order to get closer to our code increase limit.

Bug:21868508

Change-Id: I05f76bfd97f03bda3741eca4e6a678c536ad0702

9 years agoMerge "Revert "Use the quickened metadata to compile -QUICK opcodes.""
Nicolas Geoffray [Fri, 17 Jul 2015 10:02:45 +0000 (10:02 +0000)]
Merge "Revert "Use the quickened metadata to compile -QUICK opcodes.""

9 years agoRevert "Use the quickened metadata to compile -QUICK opcodes."
Nicolas Geoffray [Fri, 17 Jul 2015 10:02:30 +0000 (10:02 +0000)]
Revert "Use the quickened metadata to compile -QUICK opcodes."

Broke sdk build. Investigating.

This reverts commit 4515a67434c9e3e1627586629a1f2aba1a99aa6a.

Change-Id: I6c1107ab626758570a59dc6bf3e4228c70a57196

9 years agoMerge "Use the quickened metadata to compile -QUICK opcodes."
Nicolas Geoffray [Fri, 17 Jul 2015 09:15:56 +0000 (09:15 +0000)]
Merge "Use the quickened metadata to compile -QUICK opcodes."

9 years agoMerge "Test on (in)variant static and instance field arrays."
Aart Bik [Fri, 17 Jul 2015 01:15:58 +0000 (01:15 +0000)]
Merge "Test on (in)variant static and instance field arrays."

9 years agoTest on (in)variant static and instance field arrays.
Aart Bik [Fri, 17 Jul 2015 00:40:44 +0000 (17:40 -0700)]
Test on (in)variant static and instance field arrays.

Rationale:
Ensure upcoming improved side effects analysis
results in valid optimizations only.

Bug: 22538329
Change-Id: I87e699853e914a0e42adfd1c4e4f9789781b65df

9 years agoMerge "ART: Fix System.arraycopy"
Andreas Gampe [Fri, 17 Jul 2015 00:51:11 +0000 (00:51 +0000)]
Merge "ART: Fix System.arraycopy"

9 years agoART: Fix System.arraycopy
Andreas Gampe [Fri, 17 Jul 2015 00:41:25 +0000 (17:41 -0700)]
ART: Fix System.arraycopy

We cannot use the same code for float+int and long+double. In debug
mode, this will fail.

Change-Id: Icf263626896a7b53e59685c474e77b4c3128ecd5

9 years agoMerge "Disable test while investigating."
Nicolas Geoffray [Thu, 16 Jul 2015 18:12:57 +0000 (18:12 +0000)]
Merge "Disable test while investigating."

9 years agoDisable test while investigating.
Nicolas Geoffray [Thu, 16 Jul 2015 18:11:54 +0000 (19:11 +0100)]
Disable test while investigating.

Change-Id: Iea1a5b59582d2d12aba8ca5eb5eab3db3cc9dd59

9 years agoUse the quickened metadata to compile -QUICK opcodes.
Nicolas Geoffray [Thu, 16 Jul 2015 13:58:58 +0000 (14:58 +0100)]
Use the quickened metadata to compile -QUICK opcodes.

Change-Id: I28a8d68921698bea81f54c95cc6e4c6d2c03f2b4

9 years agoMerge "Use (D)CHECK_ALIGNED more."
Roland Levillain [Thu, 16 Jul 2015 13:55:28 +0000 (13:55 +0000)]
Merge "Use (D)CHECK_ALIGNED more."

9 years agoMerge "Make oatdump see the new vmap table generated by dextodex."
Nicolas Geoffray [Thu, 16 Jul 2015 13:42:22 +0000 (13:42 +0000)]
Merge "Make oatdump see the new vmap table generated by dextodex."

9 years agoMake oatdump see the new vmap table generated by dextodex.
Nicolas Geoffray [Thu, 16 Jul 2015 13:15:05 +0000 (14:15 +0100)]
Make oatdump see the new vmap table generated by dextodex.

Change-Id: I48f3fb7320e39c864f8fbc478f970b18358408ec

9 years agoMerge "ART: Boolean simplifier fix"
Nicolas Geoffray [Thu, 16 Jul 2015 12:41:02 +0000 (12:41 +0000)]
Merge "ART: Boolean simplifier fix"

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 agoImprove documentation of memory layouts in stack_map.h.
Roland Levillain [Thu, 16 Jul 2015 10:54:44 +0000 (11:54 +0100)]
Improve documentation of memory layouts in stack_map.h.

Also shorten NumberOfDexRegisterLocationCatalogEntries to
NumberOfLocationCatalogEntries.

Change-Id: I55f8ec2960ea67e2eb6871a417bd442d0e2810fb

9 years agoART: Boolean simplifier fix
Serguei Katkov [Wed, 15 Jul 2015 09:32:09 +0000 (15:32 +0600)]
ART: Boolean simplifier fix

Boolean simplifier should not remove condition instruction
if it has side effects.

Change-Id: I108b69ec05a49e5543ee956ad9c691b52179cf6c
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoUse (D)CHECK_ALIGNED more.
Roland Levillain [Thu, 16 Jul 2015 09:52:26 +0000 (10:52 +0100)]
Use (D)CHECK_ALIGNED more.

Change-Id: I9d740f6a88d01e028d4ddc3e4e62b0a73ea050af

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 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 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 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 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 agoFix FieldGap priority queue ordering bug.
Richard Uhler [Tue, 14 Jul 2015 00:00:35 +0000 (17:00 -0700)]
Fix FieldGap priority queue ordering bug.

The priority queue for keeping track of gaps when packing fields in a
class object had the order reversed, giving priority to smaller gaps
instead of priority to larger gaps. This led to cases where fields
were not placed in gaps when they could be.

Bug: 22460222
Change-Id: I062e772e030c034adc227d75deed31c3322e203e

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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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