OSDN Git Service

android-x86/art.git
8 years agoMerge "Added direct memory operand support for comiss/sd on x86."
Aart Bik [Mon, 1 Aug 2016 22:52:57 +0000 (22:52 +0000)]
Merge "Added direct memory operand support for comiss/sd on x86."
am: e304fc28c4

Change-Id: Iee9114dceeb90feccc670791982815c17136137a

8 years agoMerge "libsigchain: intercept bsd_signal on lp32"
Dimitry Ivanov [Mon, 1 Aug 2016 22:47:04 +0000 (22:47 +0000)]
Merge "libsigchain: intercept bsd_signal on lp32"
am: ba001a5577

Change-Id: I197ec9cf35e2c8cff45ca62e9ae501ee87da8701

8 years agoMerge "Added direct memory operand support for comiss/sd on x86."
Treehugger Robot [Mon, 1 Aug 2016 22:45:01 +0000 (22:45 +0000)]
Merge "Added direct memory operand support for comiss/sd on x86."

8 years agoMerge "libsigchain: intercept bsd_signal on lp32"
Treehugger Robot [Mon, 1 Aug 2016 22:39:15 +0000 (22:39 +0000)]
Merge "libsigchain: intercept bsd_signal on lp32"

8 years agolibsigchain: intercept bsd_signal on lp32
Dimitry Ivanov [Mon, 1 Aug 2016 18:19:03 +0000 (11:19 -0700)]
libsigchain: intercept bsd_signal on lp32

bsd_signal is a deprecated synonym for the signal. Nevertheless
there are apps and libraries calling this function.

libsigchain needs to intercept these calls and handle them the same
way it handles signal() call.

Bug: http://b/30562229
Test: readelf --dyn-sym app_process32 and check that bsd_signal is exported
      readelf --dyn-sym app_process64 and check that bsd_signal is not exported
Change-Id: I3aa41632bb015568d8524a82f1c97e4443ec0d6c

8 years agoAdded direct memory operand support for comiss/sd on x86.
Aart Bik [Mon, 1 Aug 2016 21:11:20 +0000 (14:11 -0700)]
Added direct memory operand support for comiss/sd on x86.

Rationale:
Memory operands allows for shorter instruction sequences.
Something that may be used e.g. the upcoming implementation
of the round intrinsic.

Bug=26327751

Change-Id: Ifd976ed86917de1879fa036cbbbff5edf4fb741d
Test: assembler_x86_test

8 years agoMerge \"Put the deletion of profiling info under a GC critical section.\"
Nicolas Geoffray [Mon, 1 Aug 2016 19:50:40 +0000 (19:50 +0000)]
Merge \"Put the deletion of profiling info under a GC critical section.\"
am: 1a7c33704a

Change-Id: I4952fd9f60b7b5c85b2acba7d808f008601029d0

8 years agoMerge "Put the deletion of profiling info under a GC critical section."
Nicolas Geoffray [Mon, 1 Aug 2016 19:45:05 +0000 (19:45 +0000)]
Merge "Put the deletion of profiling info under a GC critical section."

8 years agoMerge \"Revert \"Revert \"Scan immune spaces using mod union tables.\"\"\"
Hiroshi Yamauchi [Mon, 1 Aug 2016 19:11:07 +0000 (19:11 +0000)]
Merge \"Revert \"Revert \"Scan immune spaces using mod union tables.\"\"\"
am: fcc3c6d26a

Change-Id: Id762c75f579d621cb67ca8ea7b7c16024732e23c

8 years agoMerge "Revert "Revert "Scan immune spaces using mod union tables."""
Hiroshi Yamauchi [Mon, 1 Aug 2016 19:05:43 +0000 (19:05 +0000)]
Merge "Revert "Revert "Scan immune spaces using mod union tables."""

8 years agoMerge \"ART: remove gcc cruft from the makefiles\"
Colin Cross [Mon, 1 Aug 2016 18:27:12 +0000 (18:27 +0000)]
Merge \"ART: remove gcc cruft from the makefiles\"
am: df638c66d1

Change-Id: I370c6a829207d657b6a67b259773ab28529ec373

8 years agoMerge "ART: remove gcc cruft from the makefiles"
Colin Cross [Mon, 1 Aug 2016 18:14:07 +0000 (18:14 +0000)]
Merge "ART: remove gcc cruft from the makefiles"

8 years agoMerge \"cpp-define-generator: \"make art-update-cpp-defines\" to regen asm_support\"
Igor Murashkin [Mon, 1 Aug 2016 17:58:37 +0000 (17:58 +0000)]
Merge \"cpp-define-generator: \"make art-update-cpp-defines\" to regen asm_support\"
am: 4130c3360e

Change-Id: I034b4ad64c8298cec6a998cf2d3ddf11c1812d71

8 years agoMerge "cpp-define-generator: "make art-update-cpp-defines" to regen asm_support"
Treehugger Robot [Mon, 1 Aug 2016 17:46:49 +0000 (17:46 +0000)]
Merge "cpp-define-generator: "make art-update-cpp-defines" to regen asm_support"

8 years agoMerge \"Fix art::ArchTest::FinalizeSetup not being called.\"
Przemyslaw Szczepaniak [Mon, 1 Aug 2016 10:58:42 +0000 (10:58 +0000)]
Merge \"Fix art::ArchTest::FinalizeSetup not being called.\"
am: 6e5e3b2e91

Change-Id: I2791958a7a77d62390805037e789be48fa58e23f

8 years agoMerge "Fix art::ArchTest::FinalizeSetup not being called."
Przemyslaw Szczepaniak [Mon, 1 Aug 2016 10:54:37 +0000 (10:54 +0000)]
Merge "Fix art::ArchTest::FinalizeSetup not being called."

8 years agoFix art::ArchTest::FinalizeSetup not being called.
Przemyslaw Szczepaniak [Mon, 25 Jul 2016 16:31:06 +0000 (17:31 +0100)]
Fix art::ArchTest::FinalizeSetup not being called.

CommonRuntimeTestImpl::SetUp() is calling FinalizeSetup. Since
CommonRuntimeTestImpl::FinalizeSetup is not virtual (it's virtual
one step higher in class hierarchy in CommonRuntimeTestBase), overridden
version in ArchTest was never used. This is causing ArchTest to
fail with openjdk8u60 version of java.lang.reflect (it's calling
Class#getDeclaredField in clinit, which fails on 32 bit
version because of different pointer sizes [arch_test forces
64-bit ISA])

Bug: 28666126
Test:  make -j 32 test-art-host-gtest
Change-Id: Ief370f5b18ef787575ac0f88ecbe17ebbf037542

8 years agoMerge \"ART: Fix RegTypeCache for instance field declaring class\"
David Brazdil [Mon, 1 Aug 2016 08:42:05 +0000 (08:42 +0000)]
Merge \"ART: Fix RegTypeCache for instance field declaring class\"
am: bffecdbb50

Change-Id: I1c4beef69e286097a859d8855296a0c56826dcbb

8 years agoMerge "ART: Fix RegTypeCache for instance field declaring class"
David Brazdil [Mon, 1 Aug 2016 08:39:04 +0000 (08:39 +0000)]
Merge "ART: Fix RegTypeCache for instance field declaring class"

8 years agoPut the deletion of profiling info under a GC critical section.
Nicolas Geoffray [Sat, 30 Jul 2016 21:49:11 +0000 (22:49 +0100)]
Put the deletion of profiling info under a GC critical section.

Otherwise the GC could see dangling pointers.

bug:30033802
Change-Id: I839c4f6e537aba98769e99e4d75ff869c9ff13eb

8 years agoMerge \"Fix for interpreter crash on new instance of class\"
Aart Bik [Sat, 30 Jul 2016 05:19:26 +0000 (05:19 +0000)]
Merge \"Fix for interpreter crash on new instance of class\"
am: 0f290d764d

Change-Id: Ie237c079eee92df36143b32cdb175a4f52719e34

8 years agoMerge \"Revert \"Revert \"Use try lock to fix class resolution race\"\"\"
Mathieu Chartier [Sat, 30 Jul 2016 05:19:24 +0000 (05:19 +0000)]
Merge \"Revert \"Revert \"Use try lock to fix class resolution race\"\"\"
am: 0af088d126

Change-Id: If34912dd115472f4fb2a84dd82a0b1d91c488a06

8 years agoMerge \"Create OatFileAssistant::OatFileInfo inner class.\"
Richard Uhler [Sat, 30 Jul 2016 05:19:21 +0000 (05:19 +0000)]
Merge \"Create OatFileAssistant::OatFileInfo inner class.\"
am: 3d733104c9

Change-Id: Iddfadebb0b90ea9ce8376a5a52ec8fc7c2e386f5

8 years agoMerge "Fix for interpreter crash on new instance of class"
Aart Bik [Sat, 30 Jul 2016 02:53:25 +0000 (02:53 +0000)]
Merge "Fix for interpreter crash on new instance of class"

8 years agoMerge "Revert "Revert "Use try lock to fix class resolution race"""
Treehugger Robot [Sat, 30 Jul 2016 02:10:00 +0000 (02:10 +0000)]
Merge "Revert "Revert "Use try lock to fix class resolution race"""

8 years agoRevert "Revert "Use try lock to fix class resolution race""
Mathieu Chartier [Fri, 29 Jul 2016 23:26:01 +0000 (16:26 -0700)]
Revert "Revert "Use try lock to fix class resolution race""

Fix possible deadlock in EnsureResolved caused by interaction with
GC. Since we were sleeping while holding the mutator lock, it could
block thread suspension. This would deadlock if the thread that
had locked h_class is already suspended since we would spin forever
and not make progress.

Bug: 27417671
Bug: 30500547

Test: test-art-host ART_TEST_GC_STRESS=true

This reverts commit 69bf969c055c31a75d17ea92aeee756042678114.

Change-Id: Id8750df065dc3b9ef7dc874f2eb2cc2c58e5d1eb

8 years agoMerge "Create OatFileAssistant::OatFileInfo inner class."
Richard Uhler [Sat, 30 Jul 2016 00:10:18 +0000 (00:10 +0000)]
Merge "Create OatFileAssistant::OatFileInfo inner class."

8 years agoFix for interpreter crash on new instance of class
Aart Bik [Tue, 26 Jul 2016 00:52:22 +0000 (17:52 -0700)]
Fix for interpreter crash on new instance of class

Rationale:
Fuzz testing found divergences between the compiler and interpreter
which turned out to be caused by calling instance on java.lang.Class
(this worked for compiler but crashed interpeter). Since RI does not
allow this construct, solution is to force interpreter in this
unlikely case and throw run time exception like RI. This fixes
two cases found with fuzz testing. CL also includes
fail-before/pass-after test.

Test: 600-verifier-fails

BUG=29758098

Change-Id: Ie80f7758def44e6655d28fec4c10c34ffa0fd60b

8 years agoRevert "Revert "Scan immune spaces using mod union tables.""
Hiroshi Yamauchi [Fri, 29 Jul 2016 22:07:05 +0000 (15:07 -0700)]
Revert "Revert "Scan immune spaces using mod union tables.""

This reverts commit ccf7c8a68972f3b7bfa38af0c6b792f712f83765.

Change-Id: Iee618d9ae78e1dcdea4a7ecbe9253821d4d4d015
Test: N9 boot, art tests, Ritz EAAC.
Bug: 29516968
Bug: 29517059
Bug: 12687968

8 years agoMerge \"Revert \"Use try lock to fix class resolution race\"\"
Mathieu Chartier [Fri, 29 Jul 2016 21:30:37 +0000 (21:30 +0000)]
Merge \"Revert \"Use try lock to fix class resolution race\"\"
am: 7707777f06

Change-Id: I1cd0bea29e785d45fd9b140fc2209826ff316c54

8 years agoMerge "Revert "Use try lock to fix class resolution race""
Treehugger Robot [Fri, 29 Jul 2016 21:23:49 +0000 (21:23 +0000)]
Merge "Revert "Use try lock to fix class resolution race""

8 years agoRevert "Use try lock to fix class resolution race"
Mathieu Chartier [Fri, 29 Jul 2016 20:06:45 +0000 (20:06 +0000)]
Revert "Use try lock to fix class resolution race"

This reverts commit a704eda0078989a73cac111ed309aca50d2e289b.

Bug: 27417671
Bug: 30500547
Change-Id: Ieea05236b9e61c722660cd9497c9d55d13ccd010

8 years agoMerge \"Add arena stack and priority queue type aliases\"
Matthew Gharrity [Fri, 29 Jul 2016 19:05:56 +0000 (19:05 +0000)]
Merge \"Add arena stack and priority queue type aliases\"
am: ea159431cd

Change-Id: Ia4db08fe011ee7e1eaadc8f0f221f71f146dbdfb

8 years agoMerge \"Revert \"Scan immune spaces using mod union tables.\"\"
Hiroshi Yamauchi [Fri, 29 Jul 2016 19:05:54 +0000 (19:05 +0000)]
Merge \"Revert \"Scan immune spaces using mod union tables.\"\"
am: b94ea458e7

Change-Id: I07be24b3ac8a58d041e8bf09857cb1209ab89c2c

8 years agoMerge "Add arena stack and priority queue type aliases"
Treehugger Robot [Fri, 29 Jul 2016 18:57:26 +0000 (18:57 +0000)]
Merge "Add arena stack and priority queue type aliases"

8 years agoMerge "Revert "Scan immune spaces using mod union tables.""
Treehugger Robot [Fri, 29 Jul 2016 18:52:16 +0000 (18:52 +0000)]
Merge "Revert "Scan immune spaces using mod union tables.""

8 years agoMerge \"ART: remove ART_JIT makefile variable\"
Colin Cross [Fri, 29 Jul 2016 18:10:20 +0000 (18:10 +0000)]
Merge \"ART: remove ART_JIT makefile variable\"
am: 8481f6390a

Change-Id: Id4cf81cfe8547ea03f09a2d1e4d592d58e9725a7

8 years agoMerge "ART: remove ART_JIT makefile variable"
Colin Cross [Fri, 29 Jul 2016 17:57:57 +0000 (17:57 +0000)]
Merge "ART: remove ART_JIT makefile variable"

8 years agoRevert "Scan immune spaces using mod union tables."
Hiroshi Yamauchi [Fri, 29 Jul 2016 17:41:01 +0000 (17:41 +0000)]
Revert "Scan immune spaces using mod union tables."

This reverts commit 8256da35feac0ba7589fcd4b692a4b9a936679a4.

Test failing.

Change-Id: I391dcbdba19c6f6313e06075b0a69ea406c7c50e

8 years agoAdd arena stack and priority queue type aliases
Matthew Gharrity [Fri, 29 Jul 2016 16:13:33 +0000 (09:13 -0700)]
Add arena stack and priority queue type aliases

These will be used in the graph coloring register allocator.

Test: m test-art-host

Change-Id: I4d3d063ae5a02e697f07fc8212f391b5347270e5

8 years agocpp-define-generator: "make art-update-cpp-defines" to regen asm_support
Igor Murashkin [Fri, 29 Jul 2016 16:19:44 +0000 (09:19 -0700)]
cpp-define-generator: "make art-update-cpp-defines" to regen asm_support

Change-Id: I1a550eda6c77f38e63bb1c8fb943541cbd3f9cdf

8 years agoMerge \"Pass the right class loader when inlining.\"
Nicolas Geoffray [Fri, 29 Jul 2016 14:34:09 +0000 (14:34 +0000)]
Merge \"Pass the right class loader when inlining.\"
am: 4c4d6f42cf

Change-Id: I8568aff8cf2323e43e0d15441827ded3edd417e1

8 years agoMerge "Pass the right class loader when inlining."
Nicolas Geoffray [Fri, 29 Jul 2016 14:28:44 +0000 (14:28 +0000)]
Merge "Pass the right class loader when inlining."

8 years agoART: remove gcc cruft from the makefiles
Colin Cross [Thu, 28 Jul 2016 23:01:42 +0000 (16:01 -0700)]
ART: remove gcc cruft from the makefiles

ART only builds with clang now, delete all logic to determine gcc
vs. clang, and move all LOCAL_CLANG_CFLAGS into LOCAL_CFLAGS.

Test: mma, make test-art-host, make test-art-target
Change-Id: I578615233ad3e71af18afb47bb11f3be8417216c

8 years agoART: remove ART_JIT makefile variable
Colin Cross [Thu, 28 Jul 2016 23:03:13 +0000 (16:03 -0700)]
ART: remove ART_JIT makefile variable

The ART_JIT variable isn't used (and was never used?).

Test: mma, make test-art-host, make test-art-target
Change-Id: Ie6463c3c13fab43504f3c60fd5a15f696e2cf481

8 years agoCreate OatFileAssistant::OatFileInfo inner class.
Richard Uhler [Tue, 19 Apr 2016 22:39:37 +0000 (15:39 -0700)]
Create OatFileAssistant::OatFileInfo inner class.

To share code reused for getting info about both the odex and oat files.

Test: oat file assistant tests.
Change-Id: Ifcc48e0ac481899285e39e3b02f3ade180e38728

8 years agoMerge \"Avoid read barrier for IntArray::GetArrayClass\"
Mathieu Chartier [Thu, 28 Jul 2016 22:56:42 +0000 (22:56 +0000)]
Merge \"Avoid read barrier for IntArray::GetArrayClass\"
am: 533d684038

Change-Id: I6f2843bd1b2683fa4e120baa8abf80f6a377580c

8 years agoMerge "Avoid read barrier for IntArray::GetArrayClass"
Mathieu Chartier [Thu, 28 Jul 2016 22:27:34 +0000 (22:27 +0000)]
Merge "Avoid read barrier for IntArray::GetArrayClass"

8 years agoAvoid read barrier for IntArray::GetArrayClass
Mathieu Chartier [Thu, 28 Jul 2016 18:02:38 +0000 (11:02 -0700)]
Avoid read barrier for IntArray::GetArrayClass

Changed the code use Mark instead of read barrier, this showed an
existing lock violation and possible deadlock which was fixed.
Prevent DCHECK failure from the assert.

Bug: 30469265
Test: test-art-host with CC

Change-Id: I275f953f06f6d13262043fc62eb88dca0356465a

8 years agoMerge \"Use try lock to fix class resolution race\"
Mathieu Chartier [Thu, 28 Jul 2016 18:22:37 +0000 (18:22 +0000)]
Merge \"Use try lock to fix class resolution race\"
am: 85c4a4b8c9

Change-Id: Ie267436199e2bd504b8635f62f368bd84bda1897

8 years agoMerge "Use try lock to fix class resolution race"
Mathieu Chartier [Thu, 28 Jul 2016 18:12:56 +0000 (18:12 +0000)]
Merge "Use try lock to fix class resolution race"

8 years agoMerge \"Scan immune spaces using mod union tables.\"
Hiroshi Yamauchi [Thu, 28 Jul 2016 17:30:04 +0000 (17:30 +0000)]
Merge \"Scan immune spaces using mod union tables.\"
am: ccee3363e3

Change-Id: I3930d2d589a750f8b6bbf97503fd7a0a6e06feeb

8 years agoMerge "Scan immune spaces using mod union tables."
Hiroshi Yamauchi [Thu, 28 Jul 2016 17:24:43 +0000 (17:24 +0000)]
Merge "Scan immune spaces using mod union tables."

8 years agoMerge \"Disable CheckSwapUsage test with read barriers on x86.\"
Roland Levillain [Thu, 28 Jul 2016 17:03:31 +0000 (17:03 +0000)]
Merge \"Disable CheckSwapUsage test with read barriers on x86.\"
am: 5fc9ddef31

Change-Id: Ib3d6cd1a84663842581f0eb0799cb19df7c41465

8 years agoMerge "Disable CheckSwapUsage test with read barriers on x86."
Roland Levillain [Thu, 28 Jul 2016 16:54:49 +0000 (16:54 +0000)]
Merge "Disable CheckSwapUsage test with read barriers on x86."

8 years agoMerge \"Remove two ReadBarrierMarkRegX entrypoints.\"
Roland Levillain [Thu, 28 Jul 2016 16:27:00 +0000 (16:27 +0000)]
Merge \"Remove two ReadBarrierMarkRegX entrypoints.\"
am: d22b69a127

Change-Id: I1e4a311c28af62aac97d699b67bba01de185c9d1

8 years agoMerge "Remove two ReadBarrierMarkRegX entrypoints."
Roland Levillain [Thu, 28 Jul 2016 16:20:19 +0000 (16:20 +0000)]
Merge "Remove two ReadBarrierMarkRegX entrypoints."

8 years agoPass the right class loader when inlining.
Nicolas Geoffray [Thu, 28 Jul 2016 02:49:14 +0000 (03:49 +0100)]
Pass the right class loader when inlining.

Otherwise, method and type resolution can resolve to the wrong
things and as a side effect update the dex cache with wrong data.

bug:30403437
test:./art/test/run-test --host --jit --dev --no-prebuild 613

(cherry picked from commit 0a210d9b108c87c0e7c1d430a92ce6fc89790c95)

Change-Id: I8fdca96fccae079c8e99b8e86e7b6935acfce89d

8 years agoART: Fix RegTypeCache for instance field declaring class
David Brazdil [Wed, 27 Jul 2016 14:29:25 +0000 (15:29 +0100)]
ART: Fix RegTypeCache for instance field declaring class

For bytecode instruction:

  iget(-*) ClassB->field:type

where the resolved field is actually declared in ClassA (ClassB
extends ClassA), MethodVerifier would create a RegType representing
ClassA but cache it under the descriptor "ClassB".

This is a bug but does not have any implications on correctness
because earlier resolution of ClassB (part of IGET handling) creates
another cache entry with the "ClassB" descriptor. Because the latter,
wrong entry is always imprecise (ClassA cannot be final because ClassB
extends it), either the earlier entry will be discovered or neither
of them will be a match.

Descriptor was replaced with the correct one and a DCHECK added when
creating a RegType to make sure the descriptor matches.

Bug: 30458218
Change-Id: I19e1bdd5dd79e5eac558122a06b9128d0a5c021f
Test: m test-art-host-run-test
Test: art/test/run-test --host 800-smali

8 years agoDisable CheckSwapUsage test with read barriers on x86.
Roland Levillain [Thu, 28 Jul 2016 15:37:28 +0000 (16:37 +0100)]
Disable CheckSwapUsage test with read barriers on x86.

This test does not produce the expected results on
some x86 systems when read barriers are enabled.

Also remove unused TEST_DISABLED_FOR_READ_BARRIER macro
definition.

Test: m test-art-host-gtest
Bug: 29259363
Bug: 12687968
Change-Id: If7c124226b32c10425725e62bb684150aba108ab

8 years agoMerge \"ARM64: Add comment to mterp int-to-long.\"
Vladimir Marko [Thu, 28 Jul 2016 14:16:23 +0000 (14:16 +0000)]
Merge \"ARM64: Add comment to mterp int-to-long.\"
am: e3051bf607

Change-Id: I50373e031406dad9bc56129983e47d761fde4f26

8 years agoMerge "ARM64: Add comment to mterp int-to-long."
Vladimir Marko [Thu, 28 Jul 2016 14:10:54 +0000 (14:10 +0000)]
Merge "ARM64: Add comment to mterp int-to-long."

8 years agoMerge \"Add ProcessBuilderTest#testRedirectInherit() to known failures\"
Tobias Thierer [Thu, 28 Jul 2016 13:54:54 +0000 (13:54 +0000)]
Merge \"Add ProcessBuilderTest#testRedirectInherit() to known failures\"
am: 93aa03c913

Change-Id: I0bb1d0af6e1a76bf03678dc1d090e53b9d118907

8 years agoMerge "Add ProcessBuilderTest#testRedirectInherit() to known failures"
Tobias Thierer [Thu, 28 Jul 2016 13:49:20 +0000 (13:49 +0000)]
Merge "Add ProcessBuilderTest#testRedirectInherit() to known failures"

8 years agoARM64: Add comment to mterp int-to-long.
Vladimir Marko [Thu, 28 Jul 2016 13:04:18 +0000 (14:04 +0100)]
ARM64: Add comment to mterp int-to-long.

Test: Build for Nexus 9.
Change-Id: I649e71fc1cdc2a4a103159bf72ceeb005231e66f

8 years agoMerge \"MIPS32: Improve string and class loads\"
Alexey Frunze [Thu, 28 Jul 2016 12:51:48 +0000 (12:51 +0000)]
Merge \"MIPS32: Improve string and class loads\"
am: f9136b631a

Change-Id: I0d5950875daa51ed819cc62cfdbf3c0c9543f58c

8 years agoMerge "MIPS32: Improve string and class loads"
Vladimir Marko [Thu, 28 Jul 2016 12:43:29 +0000 (12:43 +0000)]
Merge "MIPS32: Improve string and class loads"

8 years agoMerge \"ARM64: More mterp improvements.\"
Vladimir Marko [Thu, 28 Jul 2016 09:08:34 +0000 (09:08 +0000)]
Merge \"ARM64: More mterp improvements.\"
am: f59f597690

Change-Id: Iaadad83a4052394e0c9d4d4db8fe0125813eb137

8 years agoMerge "ARM64: More mterp improvements."
Vladimir Marko [Thu, 28 Jul 2016 09:00:59 +0000 (09:00 +0000)]
Merge "ARM64: More mterp improvements."

8 years agoMerge \"ART: Use old operator<< for MemBarrierKind\"
Andreas Gampe [Thu, 28 Jul 2016 05:59:24 +0000 (05:59 +0000)]
Merge \"ART: Use old operator<< for MemBarrierKind\"
am: 7cef37575c

Change-Id: I352ffba82a4554942ff5b3f2dfb7a8a1e3cce790

8 years agoMerge "ART: Use old operator<< for MemBarrierKind"
Treehugger Robot [Thu, 28 Jul 2016 05:35:28 +0000 (05:35 +0000)]
Merge "ART: Use old operator<< for MemBarrierKind"

8 years agoART: Use old operator<< for MemBarrierKind
Andreas Gampe [Thu, 28 Jul 2016 04:25:41 +0000 (21:25 -0700)]
ART: Use old operator<< for MemBarrierKind

To fix assumptions in the tests.

Test: m test-art-host
Change-Id: Ie2e738524ee8f75a3c41730f6a1449dab490e535

8 years agoMIPS32: Improve string and class loads
Alexey Frunze [Tue, 19 Jul 2016 22:00:40 +0000 (15:00 -0700)]
MIPS32: Improve string and class loads

Tested:
- MIPS32 Android boots in QEMU
- test-art-host-gtest
- test-art-target-run-test-optimizing in QEMU, on CI20
- test-art-target-gtest on CI20

Change-Id: I70fd5d5267f8594c3b29d5a4ccf66b8ca8b09df3

8 years agoMerge \"ART: Delete old compiler_enums.h\"
Andreas Gampe [Thu, 28 Jul 2016 02:13:11 +0000 (02:13 +0000)]
Merge \"ART: Delete old compiler_enums.h\"
am: 6369394e75

Change-Id: Ibb7e4f1351b8196ffa0b655b0ec91922e263fc20

8 years agoMerge "ART: Delete old compiler_enums.h"
Treehugger Robot [Thu, 28 Jul 2016 01:54:06 +0000 (01:54 +0000)]
Merge "ART: Delete old compiler_enums.h"

8 years agoMerge \"Reduce unnecessary read barriers in GC\"
Mathieu Chartier [Thu, 28 Jul 2016 01:27:07 +0000 (01:27 +0000)]
Merge \"Reduce unnecessary read barriers in GC\"
am: 74d19f13d2

Change-Id: Ic604b9201f4d23c7b230813ba884f1e0fb83320a

8 years agoMerge "Reduce unnecessary read barriers in GC"
Mathieu Chartier [Thu, 28 Jul 2016 01:05:07 +0000 (01:05 +0000)]
Merge "Reduce unnecessary read barriers in GC"

8 years agoART: Delete old compiler_enums.h
Andreas Gampe [Thu, 28 Jul 2016 00:53:11 +0000 (17:53 -0700)]
ART: Delete old compiler_enums.h

Holdover from the Quick days. Move the two enums that are still
used closer to the actual users (and prune no longer used cases).

Test: m test-art-host
Change-Id: I88aa49961a54635788cafac570ddc3125aa38262

8 years agoScan immune spaces using mod union tables.
Hiroshi Yamauchi [Wed, 27 Jul 2016 21:08:19 +0000 (14:08 -0700)]
Scan immune spaces using mod union tables.

It's faster to scan the immune spaces using the mod union tables (gray
objects on dirty pages) than the live bitmaps (gray objects).

The immune space scan time goes from ~13ms down to ~10ms in the
testWidgetsContainerFling test on angler at 1 GHz.

Change-Id: I0914d7bdb50cbf8a49c859070a3501b48eb79f3e
Test: N9 boot, art tests, Ritz EAAC.
Bug: 29516968
Bug: 29517059
Bug: 12687968

8 years agoUse try lock to fix class resolution race
Mathieu Chartier [Wed, 13 Jul 2016 16:53:35 +0000 (09:53 -0700)]
Use try lock to fix class resolution race

There was some possible deadlocks related to EnsureResolved caused by
acquiring an object lock.

Scenario:
Thread 1 acquires lock on obj1
Thread 1 begins to resolve / initialize class1
Thread 1 blocks since it sees that class1 is already being resolved and
gets preempted before it can acquire the object lock on class1
Thread 2 finishes resolving and initializing class1 and locks class1
Thread 2 blocks attempting to lock obj1
Thread 1 blocks attempting to lock class1
Deadlock

Fixed the deadlock by changing EnsureResolved to use a try lock for the
unresolved case.

Added a test.

Test: Device boot, test-art-host, monitor_test

Bug: 27417671
Change-Id: Ic6e1c3ca6f45490cf8a7bf8e137dee71ac83ff64

8 years agoMerge \"MIPS32: Block callee save fp registers in debuggable\"
Goran Jakovljevic [Wed, 27 Jul 2016 21:30:11 +0000 (21:30 +0000)]
Merge \"MIPS32: Block callee save fp registers in debuggable\"
am: 1853a70e6e

Change-Id: I6ae521add5fa8186b63306fd41d5f70ca882a967

8 years agoMerge "MIPS32: Block callee save fp registers in debuggable"
Treehugger Robot [Wed, 27 Jul 2016 21:06:44 +0000 (21:06 +0000)]
Merge "MIPS32: Block callee save fp registers in debuggable"

8 years agoReduce unnecessary read barriers in GC
Mathieu Chartier [Wed, 27 Jul 2016 17:45:47 +0000 (10:45 -0700)]
Reduce unnecessary read barriers in GC

Removed read barrier from IsUnprocessed, DequeuePendingReference,
EnqueueReference, and a few other places.

Hard to tell if GC time goes down.

EAAC:
Before GC slow path count: 254857
After GC slow path count: 1005

Bug: 30162165
Bug: 12687968

Test: test-art-host, volantis boot with CC

Change-Id: Ic2add3a9b1e1d7561b0b167f2218b10f8dbff76c

8 years agoMerge \"Fix profiling output to properly display class info.\"
Jeff Hao [Wed, 27 Jul 2016 18:47:58 +0000 (18:47 +0000)]
Merge \"Fix profiling output to properly display class info.\"
am: 9755c262df

Change-Id: I417529769b10bd7693461c90f0306881158332a6

8 years agoMerge "Fix profiling output to properly display class info."
Treehugger Robot [Wed, 27 Jul 2016 18:38:39 +0000 (18:38 +0000)]
Merge "Fix profiling output to properly display class info."

8 years agoARM64: More mterp improvements.
Vladimir Marko [Tue, 26 Jul 2016 15:38:11 +0000 (16:38 +0100)]
ARM64: More mterp improvements.

Several simple improvements:
  - use EOR for neg-float and neg-double,
  - use SBFX instead of LSL+ASR for const/4,
  - handle long-to-int as move,
  - use LDRSW for int-to-long,
  - remove bogus CMP from iput-quick,
  - use indexed load/store for iget/iput-wide-quick,
  - use CBZ, CBNZ, TBZ, TBNZ for if-eqz, if-nez, if-gez and
    if-ltz, respectively. (The short range of TBZ/TBNZ
    requires emitting the footer before alternate stubs.)

Test: Run ART test suite on Nexus 9 with the interpreter.
Change-Id: I2e65a7cee3d3e2128b870d98cf6157c21f57d607

8 years agoFix profiling output to properly display class info.
Jeff Hao [Wed, 27 Jul 2016 17:35:03 +0000 (10:35 -0700)]
Fix profiling output to properly display class info.

The profiler stores class def indexes, not type ids.

Change-Id: Ieec9374a2ba381387ed444f376922478183145f8

8 years agoAdd ProcessBuilderTest#testRedirectInherit() to known failures
Tobias Thierer [Wed, 27 Jul 2016 15:00:59 +0000 (16:00 +0100)]
Add ProcessBuilderTest#testRedirectInherit() to known failures

This test does fairly low level operations that previously exposed
other kernel issues. So far it has been observed failing 1/10 times
on an Android L kernel but never on CTS. Therefore, adding to list
of known failures. testRedirectErrorStream_outputAndErrorAreMerged
has not yet been observed to fail but is similar; it may need to be
added to the list if it fails in future.

Test: cts-tradefed run cts -c libcore.java.lang.ProcessBuilderTest

Bug: 27464570
Change-Id: I5d67f67099e66cba4d75d9bf621609cd2d88d58a

8 years agoMerge \"Add missing filter cards to zygote mod union table\"
Mathieu Chartier [Tue, 26 Jul 2016 20:16:57 +0000 (20:16 +0000)]
Merge \"Add missing filter cards to zygote mod union table\"
am: 93afc5f20a

Change-Id: I40b355ebdabc4d53661836156b8106fa2c003fbd

8 years agoMerge "Add missing filter cards to zygote mod union table"
Mathieu Chartier [Tue, 26 Jul 2016 19:54:28 +0000 (19:54 +0000)]
Merge "Add missing filter cards to zygote mod union table"

8 years agoAdd missing filter cards to zygote mod union table
Mathieu Chartier [Tue, 26 Jul 2016 00:48:52 +0000 (17:48 -0700)]
Add missing filter cards to zygote mod union table

Without filtering the cards, every object in the zygote is grayed
during the GC. This was deleted in a PS of previous CL.

GrayAllDirtyImmuneObjects goes from 1.974ms to 376.464us for CC on
N9 maps. This happens during the pause. This CL also fixes regression
in zygote PSS.

Bug: 29516968
Bug: 12687968

Change-Id: I42014e78b1de3ce9b2eefa3bd32f0d24e2ff71c6

8 years agoMIPS32: Block callee save fp registers in debuggable
Goran Jakovljevic [Fri, 22 Jul 2016 07:46:43 +0000 (09:46 +0200)]
MIPS32: Block callee save fp registers in debuggable

This fixes tests 454-get-vreg and 457-regs in debuggable.
Additional changes in LocationsBuilderMIPS::HandleFieldGet/Set
to prevent situations when running out of available fp registers.

Test: mma -j2 ART_TEST_RUN_TEST_DEBUGGABLE=true test-art-target-run-test
Change-Id: Iaad6a6e414ff747b39209780c21aeddc225a04c1

8 years agoMerge \"Improve CC handling for immune objects\"
Mathieu Chartier [Mon, 25 Jul 2016 23:32:14 +0000 (23:32 +0000)]
Merge \"Improve CC handling for immune objects\"
am: e92730cbc5

Change-Id: Ie0226a28ebfc44595e614c3c942fba82797ecfa0

8 years agoMerge "Improve CC handling for immune objects"
Treehugger Robot [Mon, 25 Jul 2016 23:27:42 +0000 (23:27 +0000)]
Merge "Improve CC handling for immune objects"

8 years agoMerge \"Remove redundant 601 test, it\'s all in 600.\"
Aart Bik [Mon, 25 Jul 2016 23:18:13 +0000 (23:18 +0000)]
Merge \"Remove redundant 601 test, it\'s all in 600.\"
am: 90187c9858

Change-Id: Ibdc01b2f1047bca176c39942e5e80097706ad570

8 years agoMerge "Remove redundant 601 test, it's all in 600."
Aart Bik [Mon, 25 Jul 2016 23:13:18 +0000 (23:13 +0000)]
Merge "Remove redundant 601 test, it's all in 600."

8 years agoMerge \"runtime: Refactor asm_support to be auto-generated (mostly)\"
Igor Murashkin [Mon, 25 Jul 2016 23:12:41 +0000 (23:12 +0000)]
Merge \"runtime: Refactor asm_support to be auto-generated (mostly)\"
am: 10656de47c

Change-Id: Ida3192ed82ad2f835eae6f49c46f013ed012a77f

8 years agoMerge "runtime: Refactor asm_support to be auto-generated (mostly)"
Treehugger Robot [Mon, 25 Jul 2016 23:06:39 +0000 (23:06 +0000)]
Merge "runtime: Refactor asm_support to be auto-generated (mostly)"

8 years agoImprove CC handling for immune objects
Mathieu Chartier [Fri, 22 Jul 2016 17:47:45 +0000 (10:47 -0700)]
Improve CC handling for immune objects

Currently we reduce ram for immune objects by racing agianst the
mutators to try and finish processing them before the mutators
change many objects to gray. However there is still a window of time
where the mutator can dirty immune pages by changing the lock words
to gray. These pages remain dirty for the lifetime of the app.

This CL changes uses the FlipCallback pause to gray all of the
immune objects that have a dirty card. Once these objects are all
gray we don't to gray any more objects in the immune spaces since
these objects are the only ones that may reference non immune
objects.

Also only scan objects that are gray when scanning immune spaces to
reduce scanning time.

System wide PSS after boot on N9, before:
61668 kB: .art mmap
11249 kB: .Zygote

After:
36013 kB: .art mmap
12251 kB: .Zygote

Results are better than demonstrated since there are more apps
running after.

Maps PSS / Private Dirty, before:
.art mmap     3703     3116
  .Zygote      577      480

After:
.art mmap     1655     1092
  .Zygote      476      392

System server before:
.art mmap     4453     3956
  .Zygote      849      780

After:
.art mmap     2326     1748
  .Zygote      640      564

EAAC:
Before:
ScanImmuneSpaces takes 669.434ms GC time
Scores: 718, 761, 753 average 744
GC time: 4.2s, 4.35s, 4.3s average 4.28s

After:
ScanImmuneSpaces takes 138.328ms GC time
Scores: 731, 730, 704 average 722
GC time: 3.92s, 3.83s, 3.85s average 3.87s

Additional GC pause time is 285us on Maps on N9.
TODO: Reduce this pause time.

Test: N9 booting, test-art-host, EAAC all run with CC

Bug: 29516968
Bug: 12687968

Change-Id: I584b10d017547b321f33eb23fb5d64372af6f69c

8 years agoMerge \"ART: Add pointer-size template to some reflection functions\"
Andreas Gampe [Mon, 25 Jul 2016 22:34:09 +0000 (22:34 +0000)]
Merge \"ART: Add pointer-size template to some reflection functions\"
am: 3023890d94

Change-Id: I4310ad3ef62f7645ff82427512f0ef975f386341