OSDN Git Service

android-x86/art.git
7 years agoMerge "Avoid decrementing iterator to std::set<>::begin() in RosAlloc."
Vladimir Marko [Thu, 1 Sep 2016 09:50:44 +0000 (09:50 +0000)]
Merge "Avoid decrementing iterator to std::set<>::begin() in RosAlloc."

7 years agoAvoid decrementing iterator to std::set<>::begin() in RosAlloc.
Vladimir Marko [Wed, 31 Aug 2016 17:56:04 +0000 (18:56 +0100)]
Avoid decrementing iterator to std::set<>::begin() in RosAlloc.

Avoid undefined behavior in the expression
    free_page_runs_.erase(it--);
when it == free_page_runs_.begin().

Also avoid the similar expression
    free_page_runs_.erase(it++)
even though it's always well-defined.

In practice, the undefined behavior has no observable
side effects with the std::set<> implementation we use.
Therefore a regression test is not feasible.

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

7 years agoMerge "Disable dexlayout_test on target."
Treehugger Robot [Thu, 1 Sep 2016 03:21:22 +0000 (03:21 +0000)]
Merge "Disable dexlayout_test on target."

7 years agoMerge "Revert "Remove auto-generated executable list""
Treehugger Robot [Thu, 1 Sep 2016 02:43:38 +0000 (02:43 +0000)]
Merge "Revert "Remove auto-generated executable list""

7 years agoDisable dexlayout_test on target.
Jeff Hao [Thu, 1 Sep 2016 00:56:13 +0000 (17:56 -0700)]
Disable dexlayout_test on target.

Target doesn't have diff to compare output files.

Bug: 29921113
Test: mm test-art-target-gtest-dexlayout_test
Change-Id: I244c0c74214b780676283de1b309978667ff58e3

7 years agoRevert "Remove auto-generated executable list"
Colin Cross [Thu, 1 Sep 2016 01:09:57 +0000 (01:09 +0000)]
Revert "Remove auto-generated executable list"

This reverts commit 6cb44d986fc4a5b12c50f8ae8bafe4d58ae81a36.

Change-Id: Ic9b5413069585d8cda6746307c604ecba8515716

7 years agoMerge "Remove auto-generated executable list"
Colin Cross [Wed, 31 Aug 2016 21:16:22 +0000 (21:16 +0000)]
Merge "Remove auto-generated executable list"

7 years agoMerge changes Idfd8ac9f,I3dacb78f
Jeff Hao [Wed, 31 Aug 2016 20:09:58 +0000 (20:09 +0000)]
Merge changes Idfd8ac9f,I3dacb78f

* changes:
  Finish dexlayout dumping of dex files and added test.
  Add dex file intermediate representation

7 years agoMerge "Fix a check failure in the CC background transition."
Treehugger Robot [Wed, 31 Aug 2016 19:59:39 +0000 (19:59 +0000)]
Merge "Fix a check failure in the CC background transition."

7 years agoMerge "Fix unnecessary read barrier for resolved/initialized allocations"
Mathieu Chartier [Wed, 31 Aug 2016 19:41:03 +0000 (19:41 +0000)]
Merge "Fix unnecessary read barrier for resolved/initialized allocations"

7 years agoMerge "ART: Use libbase"
Treehugger Robot [Wed, 31 Aug 2016 19:37:50 +0000 (19:37 +0000)]
Merge "ART: Use libbase"

7 years agoMerge "Remove workarounds for [D]CHECK()s in constexpr functions."
Vladimir Marko [Wed, 31 Aug 2016 18:30:22 +0000 (18:30 +0000)]
Merge "Remove workarounds for [D]CHECK()s in constexpr functions."

7 years agoFinish dexlayout dumping of dex files and added test.
Jeff Hao [Mon, 29 Aug 2016 21:18:26 +0000 (14:18 -0700)]
Finish dexlayout dumping of dex files and added test.

The test runs dexdump and dexlayout over the first core library jar file
and diffs the output, checking that they're the same. More dex files
will be added later for better coverage.

Bug: 29921113
Test: mm test-art-host-gtest-dexlayout_test
(cherry-picked from commit a378e88db648cf19e771714dd1059cf3d41d4753)

Change-Id: Idfd8ac9f069885b675a4a2f0c70aef2cbef5a9b8

7 years agoMerge "ART: SHARED_REQUIRES to REQUIRES_SHARED"
Andreas Gampe [Wed, 31 Aug 2016 17:49:55 +0000 (17:49 +0000)]
Merge "ART: SHARED_REQUIRES to REQUIRES_SHARED"

7 years agoAdd dex file intermediate representation
David Sehr [Sun, 7 Aug 2016 23:01:51 +0000 (16:01 -0700)]
Add dex file intermediate representation

Add an intermediate representation, constructed from the DexFile
utilities, that can be used to optimize the layout and re-emit dex
files.

BUG: 29921113
TEST: TODO: Add dex files to compare output with dexdump

(cherry-picked from commit af14d9f551e6169c201dc7981d9cfbcb53c7d2c7)

Change-Id: I3dacb78fad5228e43d77f20b110bd40e0e116cdb

7 years agoRemove workarounds for [D]CHECK()s in constexpr functions.
Vladimir Marko [Wed, 31 Aug 2016 14:25:25 +0000 (15:25 +0100)]
Remove workarounds for [D]CHECK()s in constexpr functions.

We're now using C++14, so we can use [D]CHECK()s directly
in constexpr functions. Remove the C++11 workaround macros
([D]CHECK_CONSTEXPR) and C++ version checks. Also remove the
'static' qualifier from inline functions in affected files.

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

7 years agoMerge "MIPS32: Fill branch delay slots"
Vladimir Marko [Wed, 31 Aug 2016 13:17:44 +0000 (13:17 +0000)]
Merge "MIPS32: Fill branch delay slots"

7 years agoMerge "Re-enable boot image string sharpening."
Vladimir Marko [Wed, 31 Aug 2016 13:16:57 +0000 (13:16 +0000)]
Merge "Re-enable boot image string sharpening."

7 years agoMerge "Add entrypoint type information."
Roland Levillain [Wed, 31 Aug 2016 09:41:23 +0000 (09:41 +0000)]
Merge "Add entrypoint type information."

7 years agoFix a check failure in the CC background transition.
Hiroshi Yamauchi [Wed, 31 Aug 2016 00:44:41 +0000 (17:44 -0700)]
Fix a check failure in the CC background transition.

If there's a process state update from jank perceptible to jank
in-perceptible and a reverse update right after it, there's a chance
that the heap task daemon sees desired_collector_type ==
kCollectorTypeCC rather than kCollectorTypeCCBackground in
DoPendingCollectorTransition() which leads to a !kUseReadBarrier check
failure in TransitionCollector(). The fix is to move this check after
the early return case where collector_type == collector_type_ in
TransitionCollector() like the CMS/Hspace case.

Bug: 31039431
Bug: 12687968
Test: test-art-host, aosp boot with CC, master boot with CC.

Change-Id: I5fe34cb41eaa01c6d8bf80a185253fde6778e852

7 years agoRemove auto-generated executable list
Colin Cross [Tue, 30 Aug 2016 23:18:42 +0000 (16:18 -0700)]
Remove auto-generated executable list

Keep a list of the useful executables, and use the -host and -target
phony targets to depend on them for build-art-host and build-art-target.

Change-Id: I8ff4da32a03c219924be7990963e0c3ba90ef316

7 years agoART: SHARED_REQUIRES to REQUIRES_SHARED
Andreas Gampe [Tue, 30 Aug 2016 23:38:47 +0000 (16:38 -0700)]
ART: SHARED_REQUIRES to REQUIRES_SHARED

This coincides with the actual attribute name and upstream usage.
Preparation for deferring to libbase.

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

7 years agoMIPS32: Fill branch delay slots
Alexey Frunze [Sat, 30 Jul 2016 05:04:46 +0000 (22:04 -0700)]
MIPS32: Fill branch delay slots

Test: booted MIPS32 in QEMU
Test: test-art-host-gtest
Test: test-art-target-gtest
Test: test-art-target-run-test-optimizing on CI20

Change-Id: I727e80753395ab99fff004cb5d2e0a06409150d7

7 years agoFix unnecessary read barrier for resolved/initialized allocations
Mathieu Chartier [Tue, 30 Aug 2016 22:06:54 +0000 (15:06 -0700)]
Fix unnecessary read barrier for resolved/initialized allocations

The caller is responsible for the read barrier for these entrypoints.

No measured change in benchmarks, tested MemAllocTest.

Bug: 12687968

Test: test-art-host CC baker, N6P booting with CC
Change-Id: If6b00fa2c31ff51b943dbbe6caea2ef0a3fa1ae0

7 years agoRe-enable boot image string sharpening.
Vladimir Marko [Tue, 30 Aug 2016 16:36:24 +0000 (17:36 +0100)]
Re-enable boot image string sharpening.

Test: Run ART test suite with ART_TEST_PIC_IMAGE=true on host and Nexus 9.
Bug: 20323084
Change-Id: Ifc10e4b6f5078f599711bd84be0cec53494af3af

7 years agoMerge "Save environment snapshot and use at fork/exec"
Treehugger Robot [Tue, 30 Aug 2016 17:15:26 +0000 (17:15 +0000)]
Merge "Save environment snapshot and use at fork/exec"

7 years agoSave environment snapshot and use at fork/exec
David Sehr [Wed, 17 Aug 2016 02:22:57 +0000 (19:22 -0700)]
Save environment snapshot and use at fork/exec

Some applications may inadvertently or maliciously set of environment
variables such as LD_LIBRARY_PATH before spawning subprocesses.
To make this more difficult, save the environment at the time the
runtime starts and use the saved copy anytime Exec is called.

BUG: 30160149
TEST: make test-art-{host,target}

Change-Id: I887b78bdb21ab20855636a96da14a74c767bbfef

7 years agoMerge "Fix clang-tidy warnings in art."
Chih-hung Hsieh [Tue, 30 Aug 2016 16:20:55 +0000 (16:20 +0000)]
Merge "Fix clang-tidy warnings in art."

7 years agoMerge "Track addition of Class.toGenericString() method"
Neil Fuller [Tue, 30 Aug 2016 14:26:34 +0000 (14:26 +0000)]
Merge "Track addition of Class.toGenericString() method"

7 years agoTrack addition of Class.toGenericString() method
Neil Fuller [Tue, 23 Aug 2016 13:32:21 +0000 (14:32 +0100)]
Track addition of Class.toGenericString() method

Increasing the vtable size for class by one.

Bug: 28666126
Change-Id: I89019d5f1b65725180b409decbd5b2570e24f5fe
Test: cts ran for libcore (libcore, harmony_java_lang, org) and host art tests.

7 years agoMerge "Re-enable evacuation of recently allocated regions"
Mathieu Chartier [Tue, 30 Aug 2016 00:14:53 +0000 (00:14 +0000)]
Merge "Re-enable evacuation of recently allocated regions"

7 years agoART: Use libbase
Andreas Gampe [Mon, 29 Aug 2016 16:53:48 +0000 (09:53 -0700)]
ART: Use libbase

Move to using standard macros from libbase. Required so that we
can use libbase in libart-disassembler to disconnect from libart.

Bug: 15436106
Test: m
Test: m ART_BUILD_HOST_STATIC=true
Test: m test-art-host
Change-Id: I1f1723d875d20689d73835f6ab78c27a8efcf27a

7 years agoMerge "ART: Fix libnativebridgetest dependencies"
Treehugger Robot [Mon, 29 Aug 2016 19:51:04 +0000 (19:51 +0000)]
Merge "ART: Fix libnativebridgetest dependencies"

7 years agoMerge "ART: Fix symbols"
Treehugger Robot [Mon, 29 Aug 2016 18:27:39 +0000 (18:27 +0000)]
Merge "ART: Fix symbols"

7 years agoART: Fix libnativebridgetest dependencies
Andreas Gampe [Mon, 29 Aug 2016 18:18:37 +0000 (11:18 -0700)]
ART: Fix libnativebridgetest dependencies

Fix typo.

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

7 years agoRe-enable evacuation of recently allocated regions
Mathieu Chartier [Sat, 27 Aug 2016 20:27:06 +0000 (13:27 -0700)]
Re-enable evacuation of recently allocated regions

Reduces RAM since these regions usually have a low live % per
the generational hypothesis. Since these get collected earlier it
means the average heap size goes down.

60s after booting N6P CC before (average of 8 samples):
Dalvik .Heap PSS system wide: 28711K

After:
Dalvik .Heap PSS system wide: 18757.5K

EAAC: 1305 -> 1274 (30 samples)

Test: test-art-host CC baker and debug phone bootin

Bug: 12687968
Bug: 30124683

Change-Id: I30465be4525855ee3b78e6fafa5577a78d365bf4

7 years agoART: Fix symbols
Andreas Gampe [Mon, 29 Aug 2016 15:51:15 +0000 (08:51 -0700)]
ART: Fix symbols

Follow-up to 1f7f3bd26ecad4366c904b7e7d05587fc7a83ea2

Test: m test-art-host
Test: readelf -s $OUT/system/lib/libart.so
Change-Id: I70b25bf65e09eb984d0f533fa19638ffbec12b3c

7 years agoMerge "Revert "Blacklist failing libcore tests.""
Treehugger Robot [Mon, 29 Aug 2016 09:46:02 +0000 (09:46 +0000)]
Merge "Revert "Blacklist failing libcore tests.""

7 years agoRevert "Blacklist failing libcore tests."
Narayan Kamath [Wed, 24 Aug 2016 08:16:23 +0000 (08:16 +0000)]
Revert "Blacklist failing libcore tests."

This reverts commit fb7658b728690592938dfedc57231ade4e7bd870.

Fixed by commit 856bdfb2bd47e91950182d0c1427944e8e2ab771

Change-Id: I5977cc63f867c51c62de61dbed64cdb444d0dfbf
bug: 30917411
test: run cts -c org.apache.harmony.tests.java.math.BigIntegerTest

7 years agoMerge "WIP: ART: Clean p x86_64 string dex cache asm."
Mathieu Chartier [Sat, 27 Aug 2016 20:19:40 +0000 (20:19 +0000)]
Merge "WIP: ART: Clean p x86_64 string dex cache asm."

7 years agoMerge "ART: Add STRING_DEX_CACHE_ELEMENT_SIZE"
Mathieu Chartier [Sat, 27 Aug 2016 20:19:10 +0000 (20:19 +0000)]
Merge "ART: Add STRING_DEX_CACHE_ELEMENT_SIZE"

7 years agoFix clang-tidy warnings in art.
Chih-Hung Hsieh [Fri, 26 Aug 2016 22:06:11 +0000 (15:06 -0700)]
Fix clang-tidy warnings in art.

* Add parentheses around macro parameters, or
  use NOLINT to suppress warning.
Bug: 28705665

Test: build with WITH_TIDY=1
Change-Id: Ifc922c2e66215772042bac372754ea70074f0053

7 years agoMerge "Ignore -Wunreachable-code for ClassTable::UpdateClass"
Pirama Arumuga Nainar [Fri, 26 Aug 2016 22:38:00 +0000 (22:38 +0000)]
Merge "Ignore -Wunreachable-code for ClassTable::UpdateClass"

7 years agoIgnore -Wunreachable-code for ClassTable::UpdateClass
Pirama Arumuga Nainar [Fri, 26 Aug 2016 06:42:50 +0000 (23:42 -0700)]
Ignore -Wunreachable-code for ClassTable::UpdateClass

Bug: http://b/30421084
Bug: http://b/31104323

Clang triggers -Wunreachable-code in runtime/class_table.cc.  Disable
the one instance of this warning until we can investigate (and fix) the
Clang regression.

Change-Id: Ib292009c6d639f540d6b31e793d8aa89dd861b9e
Test: Tested build, boot and common usage for several devices images in
AOSP and internal branch.

7 years agoMerge "Fix a race condition on GC timing logger data."
Treehugger Robot [Fri, 26 Aug 2016 20:22:44 +0000 (20:22 +0000)]
Merge "Fix a race condition on GC timing logger data."

7 years agoFix a race condition on GC timing logger data.
Hiroshi Yamauchi [Fri, 26 Aug 2016 17:39:29 +0000 (10:39 -0700)]
Fix a race condition on GC timing logger data.

The GC timing logger data is thread local to the GC thread and
shouldn't be used by a mutator. The original intention was to have a
systrace scope.

This should fix the 004-JniTest failures.

Bug: 30980189
Bug: 29517059
Bug: 12687968
Test: test-art-host
Change-Id: Ibc8cfbfdd64d85ff65bf220d3022fc8fdf1064f2

7 years agoMerge "Fix ODR violation"
Treehugger Robot [Fri, 26 Aug 2016 18:32:23 +0000 (18:32 +0000)]
Merge "Fix ODR violation"

7 years agoFix ODR violation
Colin Cross [Fri, 26 Aug 2016 16:59:03 +0000 (09:59 -0700)]
Fix ODR violation

Switch everything to libziparchive instead of libziparchive-host to
prevent ODR violations.

Change-Id: Iadbe6bd22d5560621a5119d0bcc5bb829f476f6f

7 years agoMerge "ARM/MIPS: Avoid dead dex cache arrays base for intrinsics."
Treehugger Robot [Fri, 26 Aug 2016 16:19:59 +0000 (16:19 +0000)]
Merge "ARM/MIPS: Avoid dead dex cache arrays base for intrinsics."

7 years agoAdd entrypoint type information.
Serban Constantinescu [Wed, 9 Mar 2016 12:02:11 +0000 (12:02 +0000)]
Add entrypoint type information.

For some of the runtime calls we do not need to generate stack maps. For
example, the Optimizing compiler implements HRem Floating Point by
calling libm's fmod().

Since this is a leaf method that does not suspend the execution, we do
not need to treat the fmod() invoke as a possible suspend point and thus
we do not need to create a stack map for the particular PC.

For now conservatively only tag the maths runtime entrypoints with this
information.

Test: m test-art-target
Change-Id: Iab73dcf8047d2edaa7a570113ee792e46ccbc464

7 years agoMerge "Tracking java.lang.reflect.Executable changes"
Treehugger Robot [Fri, 26 Aug 2016 15:03:21 +0000 (15:03 +0000)]
Merge "Tracking java.lang.reflect.Executable changes"

7 years agoMerge "ARM: Make runtime invokes use InvokeRuntime()."
Roland Levillain [Fri, 26 Aug 2016 14:56:39 +0000 (14:56 +0000)]
Merge "ARM: Make runtime invokes use InvokeRuntime()."

7 years agoARM/MIPS: Avoid dead dex cache arrays base for intrinsics.
Vladimir Marko [Fri, 26 Aug 2016 12:13:33 +0000 (13:13 +0100)]
ARM/MIPS: Avoid dead dex cache arrays base for intrinsics.

Test: Run ART test suite on host and Nexus 6.
Change-Id: Ie2ad70f1e3f125eae5dad53a6384d405e0311505

7 years agoTracking java.lang.reflect.Executable changes
Neil Fuller [Fri, 12 Aug 2016 08:37:02 +0000 (09:37 +0100)]
Tracking java.lang.reflect.Executable changes

Added a method to Class: total vtable entries increases
by one.

Handling knock-ons of introducing Executable into the
class hierarchy above AbstractMethod.

Rearranging java_lang_reflect_*.cc code to track libcore
changes that reduce duplication between Constructor / Method
/ Executable and AbstractMethod and track the OpenJDK 8
more closely.

Bug: 28666126
Change-Id: I6b5c476a14b8ea25556c35448431de744519b6c2

7 years agoARM: Make runtime invokes use InvokeRuntime().
Serban Constantinescu [Wed, 22 Jun 2016 16:04:45 +0000 (17:04 +0100)]
ARM: Make runtime invokes use InvokeRuntime().

This patch refactors all of the ARM Optimizing compiler runtime
invokes to use InvokeRuntime(). It also fixes some misuses of
RecordPcInfo().

Change-Id: I722bc2ba95e42ff69ca12c3edc09326e0de2881f

7 years agoMerge "Address missing variable definition to fix the build."
Roland Levillain [Fri, 26 Aug 2016 10:22:29 +0000 (10:22 +0000)]
Merge "Address missing variable definition to fix the build."

7 years agoAddress missing variable definition to fix the build.
Roland Levillain [Fri, 26 Aug 2016 10:17:44 +0000 (11:17 +0100)]
Address missing variable definition to fix the build.

It was removed by another CL merged just before the
offending CL.

Test: m build-art-host
Bug: 29516974
Bug: 29506760
Bug: 12687968
Change-Id: I4457b6dafd48731eef5c8cc370d9107764d6f55c

7 years agoMerge "Re-enable the ArraySet fast path with Baker read barriers."
Roland Levillain [Fri, 26 Aug 2016 09:51:01 +0000 (09:51 +0000)]
Merge "Re-enable the ArraySet fast path with Baker read barriers."

7 years agoMerge "Fix mac builds"
Treehugger Robot [Fri, 26 Aug 2016 02:40:55 +0000 (02:40 +0000)]
Merge "Fix mac builds"

7 years agoMerge "Bisection bug search tool"
Treehugger Robot [Fri, 26 Aug 2016 02:14:53 +0000 (02:14 +0000)]
Merge "Bisection bug search tool"

7 years agoMerge "Background full compaction for CC."
Treehugger Robot [Fri, 26 Aug 2016 02:01:06 +0000 (02:01 +0000)]
Merge "Background full compaction for CC."

7 years agoMerge "MIPS64: Improve non-trivial 64-bit constant loading."
Aart Bik [Fri, 26 Aug 2016 00:48:38 +0000 (00:48 +0000)]
Merge "MIPS64: Improve non-trivial 64-bit constant loading."

7 years agoBackground full compaction for CC.
Hiroshi Yamauchi [Wed, 24 Aug 2016 20:53:12 +0000 (13:53 -0700)]
Background full compaction for CC.

Invoke a full compaction with the CC collector when an app goes to the
background like the HSpace compaction for the CMS collector.

Bug: 31039431
Bug: 12687968
Test: test-art, Ritz EAAC, N9 libartd.so device boot with CC
Change-Id: I119aa26c1d3c167b12983fffcb16164929bf8f68

7 years agoMerge "Fix arm32 build"
Colin Cross [Fri, 26 Aug 2016 00:33:47 +0000 (00:33 +0000)]
Merge "Fix arm32 build"

7 years agoMerge "Remove libLLVM* from art"
Colin Cross [Fri, 26 Aug 2016 00:11:43 +0000 (00:11 +0000)]
Merge "Remove libLLVM* from art"

7 years agoFix mac builds
Colin Cross [Thu, 25 Aug 2016 23:42:09 +0000 (16:42 -0700)]
Fix mac builds

Add libz-host back as a dependency to fix darwin builds.

Change-Id: I1abc9e2f336e029592a5fcc27a79f94ad235547e

7 years agoFix arm32 build
Colin Cross [Thu, 25 Aug 2016 23:22:04 +0000 (16:22 -0700)]
Fix arm32 build

libvixl-arm is required for arm codegen targets.

Change-Id: I6e8dab7c406bebbb8dfd9bebdb8dbb7ce21c79b3

7 years agoBisection bug search tool
Wojciech Staszkiewicz [Thu, 11 Aug 2016 21:04:20 +0000 (14:04 -0700)]
Bisection bug search tool

Bisection Bug Search is a tool for finding compiler optimization
bugs. It accepts a program which exposes a bug by producing incorrect
output and expected correct output for the program. The tool will
then attempt to narrow down the issue to a single method and
optimization pass.

Given methods in order M0..Mn finds smallest i such that compiling
Mi and interpreting all other methods produces incorrect output.
Then, given ordered optimization passes P0..Pl, finds smallest j
such that compiling Mi with passes P0..Pj-1 produces expected output
and compiling Mi with passes P0..Pj produces incorrect output.
Prints Mi and Pj.

Test: unit tests ./art/tools/bisection-search/tests.py
Manual testing:
./bisection-search.py -cp classes.dex --expected-output output Test

Change-Id: Ic40a82184975d42c9a403f697995e5c9654b8e52

7 years agoRemove libLLVM* from art
Colin Cross [Thu, 25 Aug 2016 22:29:25 +0000 (15:29 -0700)]
Remove libLLVM* from art

The functionality in libbacktrace that depended on libLLVM* has been
split out into libbacktrace_offline.  Remove the unnecessary
dependencies from dex2oats.

Test: m -j dex2oats ART_BUILD_HOST_STATIC=true
Change-Id: I79b99c4d420caefbdf6aa81541120ddedd2149c5

7 years agoMerge "Convert libart and dependencies to Android.bp"
Treehugger Robot [Thu, 25 Aug 2016 22:18:01 +0000 (22:18 +0000)]
Merge "Convert libart and dependencies to Android.bp"

7 years agoWIP: ART: Clean p x86_64 string dex cache asm.
Christina Wadsworth [Thu, 25 Aug 2016 20:38:49 +0000 (13:38 -0700)]
WIP: ART: Clean p x86_64 string dex cache asm.

Change-Id: Ic3a665f6b702ad70f8101df2f96e83c3c8903a8e
Test: test-art-host

7 years agoART: Add STRING_DEX_CACHE_ELEMENT_SIZE
Christina Wadsworth [Thu, 25 Aug 2016 21:45:51 +0000 (14:45 -0700)]
ART: Add STRING_DEX_CACHE_ELEMENT_SIZE

Change-Id: Ib484d959bd7eac3793ce508e1d608f2c7402927b

7 years agoConvert libart and dependencies to Android.bp
Colin Cross [Wed, 27 Jul 2016 17:12:38 +0000 (10:12 -0700)]
Convert libart and dependencies to Android.bp

Re-landing I73839046a5a53eb34cd28eea53149911c568e411, with fixes for mac
build (only apply -Wl,--keep-unique to device x86 builds), typo in
checking for ART_HEAP_POISONING environment variable, and removing
-Wframe-larger-than for debug builds.

Test: mma -j, m -j test-art-host
Change-Id: If88492174cbcb0d9a8758176c006163a29eaaa63

7 years agoMerge "ArraySet without type check does not need read barrier."
Vladimir Marko [Thu, 25 Aug 2016 19:52:01 +0000 (19:52 +0000)]
Merge "ArraySet without type check does not need read barrier."

7 years agoMerge "Fix VIXL assembler test for heap-poisoning configurations."
Treehugger Robot [Thu, 25 Aug 2016 18:43:08 +0000 (18:43 +0000)]
Merge "Fix VIXL assembler test for heap-poisoning configurations."

7 years agoFix VIXL assembler test for heap-poisoning configurations.
Vladimir Marko [Thu, 25 Aug 2016 17:17:56 +0000 (18:17 +0100)]
Fix VIXL assembler test for heap-poisoning configurations.

And fix a typo in test name.

Test: ART_HEAP_POISONING=true m test-art-host-gtest-assembler_thumb_test
Change-Id: Ibc3750676aa7a7b23c93ee0babb8d9c207cb762a

7 years agoMerge "ARM64: Make runtime invokes use InvokeRuntime()."
Roland Levillain [Thu, 25 Aug 2016 16:54:43 +0000 (16:54 +0000)]
Merge "ARM64: Make runtime invokes use InvokeRuntime()."

7 years agoRe-enable the ArraySet fast path with Baker read barriers.
Roland Levillain [Thu, 25 Aug 2016 16:27:56 +0000 (17:27 +0100)]
Re-enable the ArraySet fast path with Baker read barriers.

Benchmarks (ARM64) score variations on Nexus 5X with CPU
cores clamped at 960000 Hz (aosp_bullhead-userdebug build):
- Ritzperf - average (lower is better):       -0.95% (virtually unchanged)
- CaffeineMark - average (higher is better):  +2.50% (slightly better)
- DeltaBlue (lower is better):                -0.55% (virtually unchanged)
- Richards - average (lower is better):       +0.67% (virtually unchanged)
- SciMark2 - average (higher is better):      -0.10% (virtually unchanged)

Details about Ritzperf benchmarks with meaningful variations
(lower is better):
- GenericCalcActions.MemAllocTest:            -5.05% (better)

Details about CaffeineMark benchmarks with meaningful variations
(higher is better):
- Method:                                    +16.88% (better)

Details about Richards benchmarks with meaningful variations
(lower is better):
- deutsch_acc_interface:                      +9.86% (worse)

Boot image code size variation on Nexus 5X
(aosp_bullhead-userdebug build):
- total ARM64 framework Oat files size change:
  105933472 bytes -> 106027680 bytes (+0.09%)
- total ARM framework Oat files size change:
  89157936 bytes -> 89239856 bytes (+0.09%)

Test: ART host and target (ARM, ARM64) tests.
Bug: 29516974
Bug: 29506760
Bug: 12687968
Change-Id: Ib9e9709712295e17804b8888ac10e3d518ff2e70

7 years agoMerge "ARM64: Use the zero register for field and array set operations."
Vladimir Marko [Thu, 25 Aug 2016 15:42:26 +0000 (15:42 +0000)]
Merge "ARM64: Use the zero register for field and array set operations."

7 years agoARM64: Make runtime invokes use InvokeRuntime().
Serban Constantinescu [Thu, 18 Feb 2016 16:06:31 +0000 (16:06 +0000)]
ARM64: Make runtime invokes use InvokeRuntime().

This patch refactors all of the ARM64 Optimizing compiler runtime
invokes to use InvokeRuntime(). It also fixes some misuses of
RecordPcInfo().

Test: m test-art-target + Nexus 6 boot test
Change-Id: Ia3e477c42fb14c62b81e50daa5811185071bafa6

7 years agoMerge "ARM: VIXL32: Update the trampoline compiler."
Treehugger Robot [Thu, 25 Aug 2016 15:12:37 +0000 (15:12 +0000)]
Merge "ARM: VIXL32: Update the trampoline compiler."

7 years agoMerge "ARM: VIXL32: Switch JNI compiler to use VIXL Assembler."
Treehugger Robot [Thu, 25 Aug 2016 15:12:19 +0000 (15:12 +0000)]
Merge "ARM: VIXL32: Switch JNI compiler to use VIXL Assembler."

7 years agoMerge "ARM: VIXL32: Implement VIXL-based assembler."
Treehugger Robot [Thu, 25 Aug 2016 15:11:52 +0000 (15:11 +0000)]
Merge "ARM: VIXL32: Implement VIXL-based assembler."

7 years agoArraySet without type check does not need read barrier.
Vladimir Marko [Thu, 25 Aug 2016 14:20:47 +0000 (15:20 +0100)]
ArraySet without type check does not need read barrier.

Test: Run ART test suite with ART_USE_READ_BARRIER=true on host and Nexus 9.
Bug: 12687968
Change-Id: Ie04a34b2149f4fc6fe995f3e43e76986a3f6330f

7 years agoARM64: Use the zero register for field and array set operations.
Alexandre Rames [Tue, 23 Aug 2016 17:33:36 +0000 (18:33 +0100)]
ARM64: Use the zero register for field and array set operations.

Test: Run ART test suite on host and Nexus 9.
Change-Id: I4e2a81570ecc57530249672df704eb0bb780acce

7 years agoMerge "ARM: Purge Arm32Assembler."
Roland Levillain [Thu, 25 Aug 2016 12:19:36 +0000 (12:19 +0000)]
Merge "ARM: Purge Arm32Assembler."

7 years agoMerge "MIPS32: Refactor implicit null checks in array/field get/set."
Vladimir Marko [Thu, 25 Aug 2016 11:18:23 +0000 (11:18 +0000)]
Merge "MIPS32: Refactor implicit null checks in array/field get/set."

7 years agoMerge "Remove duplicate entries with libcore expectation files."
Nicolas Geoffray [Thu, 25 Aug 2016 09:14:35 +0000 (09:14 +0000)]
Merge "Remove duplicate entries with libcore expectation files."

7 years agoRemove duplicate entries with libcore expectation files.
Nicolas Geoffray [Thu, 25 Aug 2016 09:11:40 +0000 (10:11 +0100)]
Remove duplicate entries with libcore expectation files.

Needed after N->AOSP drop.

test:art/tools/run-libcore-tests.sh
Change-Id: Icd7e20e8a6cff42aecf316e2a356d19bf9e5ee39

7 years agoMerge "Revert "Revert "Fix debugger calling new String()."""
Treehugger Robot [Thu, 25 Aug 2016 05:51:36 +0000 (05:51 +0000)]
Merge "Revert "Revert "Fix debugger calling new String()."""

7 years agoRevert "Revert "Fix debugger calling new String().""
Jeff Hao [Thu, 25 Aug 2016 03:52:40 +0000 (03:52 +0000)]
Revert "Revert "Fix debugger calling new String().""

Bug: 30951794
Test: mm -j24 run-jdwp-tests-host

This reverts commit 6f48d4c72e7b4011a6d9652734bd1cb0c389790b.
This also includes the reversion of commit
528954f55e3173b02df2822c1fc680873d6a91c8.

Change-Id: If0b2ae39cb2a9db80b567bb8d5761d504433632d

7 years agoMerge "Revert "Convert libart and dependencies to Android.bp""
Colin Cross [Thu, 25 Aug 2016 01:05:27 +0000 (01:05 +0000)]
Merge "Revert "Convert libart and dependencies to Android.bp""

7 years agoRevert "Convert libart and dependencies to Android.bp"
Colin Cross [Thu, 25 Aug 2016 01:03:42 +0000 (01:03 +0000)]
Revert "Convert libart and dependencies to Android.bp"

This reverts commit 4ea3a22f0ccfb0f746c63c274b2655545e759e1f.

Change-Id: I3ac4397b4d6be038e5b863b7a24231c0736e84f3

7 years agoMerge "Convert libart and dependencies to Android.bp"
Treehugger Robot [Thu, 25 Aug 2016 00:31:20 +0000 (00:31 +0000)]
Merge "Convert libart and dependencies to Android.bp"

7 years agoMIPS32: Refactor implicit null checks in array/field get/set.
Alexey Frunze [Sat, 20 Aug 2016 08:55:47 +0000 (01:55 -0700)]
MIPS32: Refactor implicit null checks in array/field get/set.

Rationale: on MIPS32 64-bit loads and stores may be performed
as pairs of 32-bit loads/stores. Implicit null checks must be
associated with the first 32-bit load/store in a pair and not
the last. This change ensures proper association of said checks
(a few were done after the last 32-bit load/store in a pair)
and lays ground for further improvements in array/field get/set.

Test: booted MIPS32 in QEMU
Test: test-art-host-gtest
Test: test-art-target-run-test-optimizing in QEMU

Change-Id: I3674947c00bb17930790a7a47c9b7aadc0c030b8

7 years agoConvert libart and dependencies to Android.bp
Colin Cross [Wed, 27 Jul 2016 17:12:38 +0000 (10:12 -0700)]
Convert libart and dependencies to Android.bp

Test: mma -j, m -j test-art-host
Change-Id: I73839046a5a53eb34cd28eea53149911c568e411

7 years agoMerge "Avoid CAS for marking region space bitmap for baker"
Treehugger Robot [Wed, 24 Aug 2016 21:53:50 +0000 (21:53 +0000)]
Merge "Avoid CAS for marking region space bitmap for baker"

7 years agoMIPS64: Improve non-trivial 64-bit constant loading.
Chris Larsen [Fri, 13 May 2016 23:11:47 +0000 (16:11 -0700)]
MIPS64: Improve non-trivial 64-bit constant loading.

- Add special case where the upper 32 bits of the constant are equal to
  the lower 32 bits of the constant. Use the "dinsu" instruction to
  replicate the bottom 32 bits into the top 32 bits.

- Test output of LoadConst32()/LoadConst64() against various test
  constants.
  o Make the implementation of LoadConst64() into a template.
  o Using the template code for LoadConst64() implement test
    cases which simulate the computation of the value which the
    generated code sequence is actually supposed to load.
  o Add conditionally compiled code to verify that all of the
    various data paths through the LoadConst64() function
    actually get exercised.

Test: Booted MIPS64 in QEMU, and ran assembler tests.

Change-Id: Ie1ec050e65c666168a9ea582bae9fda97e4cf36a

7 years agoAvoid CAS for marking region space bitmap for baker
Mathieu Chartier [Tue, 23 Aug 2016 20:27:53 +0000 (13:27 -0700)]
Avoid CAS for marking region space bitmap for baker

Only have the GC thread mark it. This occurs when popping from the
mark stack. The race where an object may be pushed to the mark
stack twice is handled by not scanning if it is already marked.

Also avoid checking is_active when marking from the GC.

EAAC: 1263 -> 1253 (average of 30 runs)
GC time: 7.21s -> 6.83s (average of 18 runs)

Timings on 960 mhz N6P.

Bug: 12687968

Change-Id: I47e98c3e258829d2ba0babd803a219c82a36168c
Test: test-art-host, debug N6P booting with baker CC.

7 years agoMerge "ART: Remove vestiges of GCC"
Andreas Gampe [Wed, 24 Aug 2016 17:21:18 +0000 (17:21 +0000)]
Merge "ART: Remove vestiges of GCC"
am: 8aea8dbca6

Change-Id: I6bf7a971949ccbc0aa2d008a1264c7f3c880b9fb