OSDN Git Service

android-x86/art.git
7 years agoConvert more of art to Android.bp
Colin Cross [Tue, 30 Aug 2016 20:49:26 +0000 (13:49 -0700)]
Convert more of art to Android.bp

Relanding I1b10f140e17dd5e12a9d7f6a29d47cf61f5bf6ef, with fixes to
compile dalvikvm32 and dalvikvm64, and add them as dependencies of
tests.  Also fixes HOST_PREFER_32_BIT by moving the override from the
defaults, which are not used by everything in art, to the art_cc_binary
module type.

Test: rm -rf out/host; m -j HOST_PREFER_32_BIT test-art-host; m -j test-art-host
Change-Id: I64d3eef5080e128103d052497760c3521cc253c6

7 years agoMerge "ART: Detach libart-disassembler from libart"
Andreas Gampe [Thu, 8 Sep 2016 17:43:29 +0000 (17:43 +0000)]
Merge "ART: Detach libart-disassembler from libart"

7 years agoMerge "Clean up the 538-checker-embed-constants test"
Treehugger Robot [Thu, 8 Sep 2016 17:27:45 +0000 (17:27 +0000)]
Merge "Clean up the 538-checker-embed-constants test"

7 years agoART: Detach libart-disassembler from libart
Andreas Gampe [Tue, 30 Aug 2016 00:43:45 +0000 (17:43 -0700)]
ART: Detach libart-disassembler from libart

Some more intrusive changes than I would have liked, as long as
ART logging is different from libbase logging.

Fix up some includes.

Bug: 15436106
Bug: 31338270
Test: m test-art-host
Change-Id: I9fbe4b85b2d74e079a4981f3aec9af63b163a461

7 years agoMerge "ART: Generate path to entrypoints in VisitLoadString for arm64"
Mathieu Chartier [Thu, 8 Sep 2016 17:04:04 +0000 (17:04 +0000)]
Merge "ART: Generate path to entrypoints in VisitLoadString for arm64"

7 years agoMerge "Do type checks in ArraySet without read barriers."
Roland Levillain [Thu, 8 Sep 2016 16:08:34 +0000 (16:08 +0000)]
Merge "Do type checks in ArraySet without read barriers."

7 years agoClean up the 538-checker-embed-constants test
Anton Kirilov [Wed, 7 Sep 2016 13:45:23 +0000 (14:45 +0100)]
Clean up the 538-checker-embed-constants test

Change-Id: Ib7f11fc5d695c8c53fec55573e11bc87313c1065

7 years agoMerge "ART: Remove computed-goto interpreter"
Bill Buzbee [Thu, 8 Sep 2016 14:14:26 +0000 (14:14 +0000)]
Merge "ART: Remove computed-goto interpreter"

7 years agoMerge "ARM64: Use macros for saving/restoring registers in assembly."
Treehugger Robot [Thu, 8 Sep 2016 13:06:38 +0000 (13:06 +0000)]
Merge "ARM64: Use macros for saving/restoring registers in assembly."

7 years agoARM64: Use macros for saving/restoring registers in assembly.
Vladimir Marko [Wed, 7 Sep 2016 17:05:55 +0000 (18:05 +0100)]
ARM64: Use macros for saving/restoring registers in assembly.

And for read barrier entrypoints, store LR conventionally
at the top of the frame instead of having a padding there.

Test: m test-art-target on Nexus 9.
Test: m test-art-target with CC on Nexus 9.
Change-Id: I48eaba3ee71c0629d2cc851fdd802590256a0739

7 years agoMerge "Fix some memory leaks found by valgrind."
David Sehr [Thu, 8 Sep 2016 00:39:03 +0000 (00:39 +0000)]
Merge "Fix some memory leaks found by valgrind."

7 years agoMerge changes I20396a1b,I794df17a
Treehugger Robot [Thu, 8 Sep 2016 00:35:10 +0000 (00:35 +0000)]
Merge changes I20396a1b,I794df17a

* changes:
  Support CUSTOM_TARGET_LINKER
  Support HOST_PREFER_32_BIT

7 years agoFix some memory leaks found by valgrind.
David Sehr [Wed, 7 Sep 2016 20:04:01 +0000 (13:04 -0700)]
Fix some memory leaks found by valgrind.

Bug: 29921113
Change-Id: If70d475a3317751d206658c5794a32d78bc33e47
Test: valgrind-test-art-host-gtest (with --trace-children=yes)

7 years agoMerge "ART: Generate path to entrypoints in VisitLoadString for arm"
Treehugger Robot [Wed, 7 Sep 2016 22:54:12 +0000 (22:54 +0000)]
Merge "ART: Generate path to entrypoints in VisitLoadString for arm"

7 years agoSupport CUSTOM_TARGET_LINKER
Colin Cross [Wed, 7 Sep 2016 21:12:50 +0000 (14:12 -0700)]
Support CUSTOM_TARGET_LINKER

Support overriding the dynamic linker setting in ART binaries when
CUSTOM_TARGET_LINKER is set.  Used for ART testing of new binaries on a
device flashed to an old platform.

Change-Id: I20396a1bedd37cdf884d0c5a68f93b9a3e7e10b2

7 years agoART: Generate path to entrypoints in VisitLoadString for arm64
Christina Wadsworth [Wed, 31 Aug 2016 23:14:38 +0000 (16:14 -0700)]
ART: Generate path to entrypoints in VisitLoadString for arm64

ARM64 CC boot.oat: 81817968 -> 80806672 (-1.23%)

Generate the code for the medium path in VisitLoadString, not by
creating a slow path and generating with the slow paths.

Change-Id: I45df45ea401157ae3d76a2d15dba35f3aed5593f
Tests: test-art-target on bullhead on master branch, N6P CC booting

7 years agoSupport HOST_PREFER_32_BIT
Colin Cross [Tue, 6 Sep 2016 17:24:28 +0000 (10:24 -0700)]
Support HOST_PREFER_32_BIT

HOST_PREFER_32_BIT has been removed from the build system, support it
directly in art.  When it is set, set the compile_multilib property of
all host art modules to "prefer32".

Change-Id: I794df17a805588392bd448983f279e4b8c8fe1c6

7 years agoART: Generate path to entrypoints in VisitLoadString for arm
Christina Wadsworth [Wed, 31 Aug 2016 00:19:14 +0000 (17:19 -0700)]
ART: Generate path to entrypoints in VisitLoadString for arm

ARM32 boot.oat with CC: 72534816 -> 71888864 (-0.9%)

Move code that branches to entrypoints from GenerateSlowPaths to
VisitLoadString. Since we're doing this every time, we shouldn't have it
at the end with all of the slow paths.

Test: N6P booting with CC, test-art-target32 on shamu
Change-Id: I9c3307629015c9f6460506519339d4f275abe5a9

7 years agoMerge "Avoid read barrier for image HLoadClass"
Mathieu Chartier [Wed, 7 Sep 2016 21:10:34 +0000 (21:10 +0000)]
Merge "Avoid read barrier for image HLoadClass"

7 years agoMerge "Prepare bisection search for runtest integration"
Aart Bik [Wed, 7 Sep 2016 18:14:06 +0000 (18:14 +0000)]
Merge "Prepare bisection search for runtest integration"

7 years agoMerge "Separate DexIr building from constructors."
David Sehr [Wed, 7 Sep 2016 17:43:28 +0000 (17:43 +0000)]
Merge "Separate DexIr building from constructors."

7 years agoAvoid read barrier for image HLoadClass
Mathieu Chartier [Sat, 3 Sep 2016 00:11:57 +0000 (17:11 -0700)]
Avoid read barrier for image HLoadClass

Concurrent copying baker:

X86_64 core-optimizing-pic.oat: 28583112 -> 27906824 (2.4% smaller)

Around 0.4% of 2.4% is from re-enabling kBootImageLinkTimeAddress,
kBootImageLinkTimePcRelative, and kBootImageAddress.

N6P boot.oat 32: 73042140 -> 71891956 (1.57% smaller)
N6P boot.oat 64: 83831608 -> 82531456 (1.55% smaller)

EAAC: 1252 -> 1245 (32 samples)

Bug: 29516974

Test: test-art-host CC baker, N6P booting

Change-Id: I9a196cf0157058836981c43c93872e9f0c4919aa

7 years agoMerge "LogMessageData: Fix assignment in constructor"
Greg Kaiser [Wed, 7 Sep 2016 15:00:51 +0000 (15:00 +0000)]
Merge "LogMessageData: Fix assignment in constructor"

7 years agoART: Remove computed-goto interpreter
buzbee [Wed, 7 Sep 2016 14:12:29 +0000 (07:12 -0700)]
ART: Remove computed-goto interpreter

ART currently has 3 interpreters: a baseline switch-statement based
interpreter, a C++ computed goto interpreter and a fast assembly
interpreter (mterp).

The C++ computed goto interpreter was intended to get some of the
benefits of the old Dalvik mterp interpreter - which it did.  However,
we now have the faster assembly interpreter, so it is no longer
needed.

Test: m test-art-host
Test: m ART_TEST_INTERPRETER=true test-art-host
Change-Id: I0e8f139ab6bc48d0568951af1f83e2b1c00835f8

7 years agoMerge "Add build rules for statically linked oatdump on host."
Roland Levillain [Wed, 7 Sep 2016 11:12:37 +0000 (11:12 +0000)]
Merge "Add build rules for statically linked oatdump on host."

7 years agoDo type checks in ArraySet without read barriers.
Roland Levillain [Mon, 5 Sep 2016 14:57:33 +0000 (15:57 +0100)]
Do type checks in ArraySet without read barriers.

This approach is valid in the case of Baker and non-Baker
read barriers.

Benchmarks (ARM64) score variations on Nexus 5X with CPU
cores clamped at 960000 Hz (aosp_bullhead-userdebug build,
medians of 10 runs for each suite):
- Ritzperf - average (lower is better):       -0.44% (virtually unchanged)
- CaffeineMark - average (higher is better):  -0.20% (virtually unchanged)
- DeltaBlue (lower is better):                -4.08% (slightly better)
- Richards - average (lower is better):       -0.57% (virtually unchanged)
- SciMark2 - average (higher is better):      -0.52% (virtually unchanged)

Details about Ritzperf benchmarks with meaningful variations
(lower is better):
- GenericCalcActions.MemAllocTest:            +3.02% (slightly worse)

Details about Richards benchmarks with meaningful variations
(lower is better):
- gibbons                                     -5.01% (better)

Boot image code size variation on Nexus 5X
(aosp_bullhead-userdebug build):
- total ARM64 framework Oat files size change:
  83127840 bytes -> 83082656 bytes (-45184 bytes, -0.05%)
- total ARM framework Oat files size change:
  72571872 bytes -> 72522796 bytes (-49076 bytes, -0.07%)

Test: ART_USE_READ_BARRIER=true ART_HEAP_POISONING=true m test-art-host
Test: ART_USE_READ_BARRIER=true ART_HEAP_POISONING=true m test-art-target
Bug: 29516974
Bug: 12687968
Change-Id: I8fe130156ace87dd2e4a15d9f8b4111287e735b3

7 years agoMerge "Revert "Convert more of art to Android.bp""
Colin Cross [Wed, 7 Sep 2016 07:27:40 +0000 (07:27 +0000)]
Merge "Revert "Convert more of art to Android.bp""

7 years agoRevert "Convert more of art to Android.bp"
Colin Cross [Wed, 7 Sep 2016 07:16:35 +0000 (00:16 -0700)]
Revert "Convert more of art to Android.bp"

This reverts commits 4a456275e25c536f525b6c020ca38c8ada8a05de and
198a957915eb75c5f837ea57d385aa6cfa69f76e.

Change-Id: Ibe49f611ae3ed7748bcfc9ac07f8d1f52d6bea3a

7 years agoMerge "Fix art tests"
Treehugger Robot [Wed, 7 Sep 2016 04:15:09 +0000 (04:15 +0000)]
Merge "Fix art tests"

7 years agoFix art tests
Colin Cross [Wed, 7 Sep 2016 02:32:39 +0000 (19:32 -0700)]
Fix art tests

dalvikvm needs to be compiled for 32-bit and 64-bit.

Change-Id: I184d7e4e3338c0858b0520f7eba7f9b256cfc02a

7 years agoMerge "Convert more of art to Android.bp"
Treehugger Robot [Wed, 7 Sep 2016 01:35:01 +0000 (01:35 +0000)]
Merge "Convert more of art to Android.bp"

7 years agoMerge "Add -g to art script --perf-report"
Treehugger Robot [Tue, 6 Sep 2016 23:12:04 +0000 (23:12 +0000)]
Merge "Add -g to art script --perf-report"

7 years agoMerge changes I31aaf3ae,I8ef4639f
Hiroshi Yamauchi [Tue, 6 Sep 2016 21:42:29 +0000 (21:42 +0000)]
Merge changes I31aaf3ae,I8ef4639f

* changes:
  Disable the from-space memory protection under host debug build.
  Revert "Disable the from-space memory protection under debug/gcstress."

7 years agoSeparate DexIr building from constructors.
David Sehr [Thu, 1 Sep 2016 20:03:50 +0000 (13:03 -0700)]
Separate DexIr building from constructors.

Move all the construction from DexFile out of the constructors of the
basic IR.

Bug: 29921113
Change-Id: I3f79c104ce7183ddde73f143c047061416009a54
Test: test-art-host-gtest

7 years agoMerge "ART: Dump more info on 137-cfi failure"
Treehugger Robot [Tue, 6 Sep 2016 19:43:09 +0000 (19:43 +0000)]
Merge "ART: Dump more info on 137-cfi failure"

7 years agoDisable the from-space memory protection under host debug build.
Hiroshi Yamauchi [Tue, 6 Sep 2016 19:24:52 +0000 (12:24 -0700)]
Disable the from-space memory protection under host debug build.

Temporarily for diagnosing the odd memory protection issue on the build
server.

Bug: 31172841
Test: test-art-host with SS
Change-Id: I31aaf3ae5b1d3bda901c6c739933b5a4751058c1

7 years agoMerge "Optimizing: Fix handling empty fill-array-data."
Treehugger Robot [Tue, 6 Sep 2016 19:24:44 +0000 (19:24 +0000)]
Merge "Optimizing: Fix handling empty fill-array-data."

7 years agoRevert "Disable the from-space memory protection under debug/gcstress."
Hiroshi Yamauchi [Tue, 6 Sep 2016 19:20:26 +0000 (12:20 -0700)]
Revert "Disable the from-space memory protection under debug/gcstress."

Bug: 31172841
This reverts commit 7a2d267b907000c56f401ab3c51f155cee9752a9.

Change-Id: I8ef4639f255118aba278f8051adf356271116507

7 years agoConvert more of art to Android.bp
Colin Cross [Tue, 30 Aug 2016 20:49:26 +0000 (13:49 -0700)]
Convert more of art to Android.bp

Change-Id: I1b10f140e17dd5e12a9d7f6a29d47cf61f5bf6ef

7 years agoMerge "Change deoptimize entrypoint to save everything."
Treehugger Robot [Tue, 6 Sep 2016 18:20:07 +0000 (18:20 +0000)]
Merge "Change deoptimize entrypoint to save everything."

7 years agoMerge "ARM: VIXL32: Support a newer version of VIXL."
Treehugger Robot [Tue, 6 Sep 2016 17:59:40 +0000 (17:59 +0000)]
Merge "ARM: VIXL32: Support a newer version of VIXL."

7 years agoART: Dump more info on 137-cfi failure
Andreas Gampe [Mon, 5 Sep 2016 19:30:49 +0000 (12:30 -0700)]
ART: Dump more info on 137-cfi failure

Print the maps of the secondary process. Try to induce in-process
dumping of the secondary.

Bug: 31208203
Change-Id: I16a80e8510b297d61a51fdee91ab1c2f2e5a47c8

7 years agoOptimizing: Fix handling empty fill-array-data.
Vladimir Marko [Tue, 6 Sep 2016 15:49:15 +0000 (16:49 +0100)]
Optimizing: Fix handling empty fill-array-data.

Test: m test-art-host-run-test-412-new-array
Bug: 31300081
Change-Id: Id0512fc95a96c37de2ceab481666688435fa30f6

7 years agoChange deoptimize entrypoint to save everything.
Vladimir Marko [Mon, 5 Sep 2016 09:44:04 +0000 (10:44 +0100)]
Change deoptimize entrypoint to save everything.

And implement FPU register retrieval from stack on x86.

On Nexus 9, AOSP ToT, the boot.oat size reduction is
  prebuilt multi-part boot image:
    - 32-bit boot.oat: -20KiB (-0.03%)
    - 64-bit boot.oat: -45KiB (-0.06%)
  on-device built single boot image:
    - 32-bit boot.oat: -24KiB (-0.04%)
    - 64-bit boot.oat: -36KiB (-0.05%)

Test: Run ART test suite on host and Nexus 9.
Bug: 30212852
Change-Id: I5d98e2a24363136d73dfec6100ab02f8eb101911

7 years agoLogMessageData: Fix assignment in constructor
Greg Kaiser [Tue, 6 Sep 2016 04:39:51 +0000 (21:39 -0700)]
LogMessageData: Fix assignment in constructor

The previous code was assigning to the function argument, not
the member variable.  Since our member variable is 'const'
we use a helper function to acheive this.

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

7 years agoAdd build rules for statically linked oatdump on host.
Roland Levillain [Tue, 6 Sep 2016 10:09:41 +0000 (11:09 +0100)]
Add build rules for statically linked oatdump on host.

Also extend oatdump_test to exercise oatdump(d)s.

Test: ART_BUILD_HOST_STATIC=true m test-art-host-gtest-oatdump_test
Bug: 29530992
Change-Id: I6eb6c96f385832733d18d0400abd9974a6d8e45c

7 years agoMerge "MIPS32: Ensure preservation of RA in leaf methods if it's clobbered"
Treehugger Robot [Tue, 6 Sep 2016 09:07:05 +0000 (09:07 +0000)]
Merge "MIPS32: Ensure preservation of RA in leaf methods if it's clobbered"

7 years agoMerge "Fix typo in definition of `build-art-executable`."
Treehugger Robot [Mon, 5 Sep 2016 21:24:09 +0000 (21:24 +0000)]
Merge "Fix typo in definition of `build-art-executable`."

7 years agoMerge "Avoid excessive spill slots for slow paths."
Treehugger Robot [Mon, 5 Sep 2016 18:12:13 +0000 (18:12 +0000)]
Merge "Avoid excessive spill slots for slow paths."

7 years agoAvoid excessive spill slots for slow paths.
Vladimir Marko [Tue, 9 Aug 2016 10:04:26 +0000 (11:04 +0100)]
Avoid excessive spill slots for slow paths.

Reducing the frame size makes stack maps smaller as we need
fewer bits for stack masks and some dex register locations
may use short location kind rather than long. On Nexus 9,
AOSP ToT, the boot.oat size reduction is
  prebuilt multi-part boot image:
    - 32-bit boot.oat: -416KiB (-0.6%)
    - 64-bit boot.oat: -635KiB (-0.9%)
  prebuilt multi-part boot image with read barrier:
    - 32-bit boot.oat: -483KiB (-0.7%)
    - 64-bit boot.oat: -703KiB (-0.9%)
  on-device built single boot image:
    - 32-bit boot.oat: -380KiB (-0.6%)
    - 64-bit boot.oat: -632KiB (-0.9%)
  on-device built single boot image with read barrier:
    - 32-bit boot.oat: -448KiB (-0.6%)
    - 64-bit boot.oat: -692KiB (-0.9%)

The other benefit is that at runtime, threads may need fewer
pages for their stacks, reducing overall memory usage.

We defer the calculation of the maximum spill size from
the main register allocator (linear scan or graph coloring)
to the RegisterAllocationResolver and do it based on the
live registers at slow path safepoints. The old notion of
an artificial slow path safepoint interval is removed as
it is no longer needed.

Test: Run ART test suite on host and Nexus 9.
Bug: 30212852
Change-Id: I40b3d114e278e2c5807982904fa49bf6642c6275

7 years agoFix typo in definition of `build-art-executable`.
Roland Levillain [Mon, 5 Sep 2016 15:27:20 +0000 (16:27 +0100)]
Fix typo in definition of `build-art-executable`.

Uses of `LOCAL_MODULES` need two `$` signs within that Make
function definition, so the variable is properly evaluated,
as `build-art-executable` is expanded twice (because it is
used in calls to the `eval` function).

Test: ART_BUILD_HOST_STATIC=true mmma art
Change-Id: I669d493aa7470cb8cde28b2018c784937cd2d335

7 years agoARM: VIXL32: Support a newer version of VIXL.
Anton Kirilov [Fri, 2 Sep 2016 19:55:46 +0000 (20:55 +0100)]
ARM: VIXL32: Support a newer version of VIXL.

Change-Id: I410c1536637a3282640d06894632491fe5d3c72a

7 years agoMerge "Address a couple of TODOs and remove an unused header."
Orion Hodson [Mon, 5 Sep 2016 14:42:31 +0000 (14:42 +0000)]
Merge "Address a couple of TODOs and remove an unused header."

7 years agoMerge changes I3f825746,Ia4284ccd,I437ffd43
Nicolas Geoffray [Mon, 5 Sep 2016 12:54:42 +0000 (12:54 +0000)]
Merge changes I3f825746,Ia4284ccd,I437ffd43

* changes:
  Extend the InvokeRuntime() changes to mips64.
  Extend the InvokeRuntime() changes to mips.
  Extend the InvokeRuntime() changes to x86 and x86_64.

7 years agoAddress a couple of TODOs and remove an unused header.
Orion Hodson [Mon, 5 Sep 2016 12:43:11 +0000 (13:43 +0100)]
Address a couple of TODOs and remove an unused header.

Fixing overlooked comments in:
  https://android-review.googlesource.com/#/c/258402/

Test: test-art-target-gtest-dex_file_test

Change-Id: I5dc4ddb0cfaf1445a92620d8e2fa35cdb277df6a

7 years agoMerge "Clean up some includes."
Treehugger Robot [Mon, 5 Sep 2016 09:18:53 +0000 (09:18 +0000)]
Merge "Clean up some includes."

7 years agoMerge "Support for loading classes from DEX files stored in a ByteBuffer."
Orion Hodson [Mon, 5 Sep 2016 09:11:36 +0000 (09:11 +0000)]
Merge "Support for loading classes from DEX files stored in a ByteBuffer."

7 years agoMerge changes I5acba084,I08a3379d
Treehugger Robot [Sat, 3 Sep 2016 17:06:43 +0000 (17:06 +0000)]
Merge changes I5acba084,I08a3379d

* changes:
  ART: Suppress libbase failures in valgrind
  ART: Use a 50-deep call-stack in valgrind

7 years agoMerge "ART: Fixup JDWP tests script"
Nicolas Geoffray [Sat, 3 Sep 2016 13:56:59 +0000 (13:56 +0000)]
Merge "ART: Fixup JDWP tests script"

7 years agoART: Fixup JDWP tests script
Andreas Gampe [Thu, 31 Dec 2015 03:37:48 +0000 (19:37 -0800)]
ART: Fixup JDWP tests script

The tests have problems on the host because of boot images. Vogar
by default runs in 32-bit mode, but the art script, used for forked
debuggee processes, by default runs in 64-bit. The JDWP forks also
do not set a boot classpath. With that mismatch, when the tests
are run in 32-bit mode on a 64-bit enabled host, the forked processes
will die.

Check whether a --variant parameter was passed to the test (and if
not assume it's x32). If the parameter is x32, then adapt the
debuggee command to ensure the forked runtime also runs in 32-bit
mode and finds the image from the controller. Similarly handle
the x64 case.

Change-Id: Ic22477e33702e1a7c1ca94466bf02df4cb201723

7 years agoART: Suppress libbase failures in valgrind
Andreas Gampe [Sat, 3 Sep 2016 02:43:59 +0000 (19:43 -0700)]
ART: Suppress libbase failures in valgrind

Whitelist globals in libbase's logging code that are triggered
when loading libjavacore.

Note: this suppression is very broad and applies to all leaks
during core native-methods binding. It is intentionally so to
be robust to name changes.

Test: m valgrind-test-art-host
Test: m valgrind-test-art-target-gtest-exception_test (N9)
Bug: 31275764
Change-Id: I5acba084fe6cfc3b03e1f899ea546a57ad5cf11c

7 years agoART: Use a 50-deep call-stack in valgrind
Andreas Gampe [Sat, 3 Sep 2016 02:43:09 +0000 (19:43 -0700)]
ART: Use a 50-deep call-stack in valgrind

Necessary to diagnose issues. Required for deep suppressions.

Test: m valgrind-test-art-host
Change-Id: I08a3379d4763d66a2ae7db1f2f500c93b0a93e90

7 years agoPrepare bisection search for runtest integration
Wojciech Staszkiewicz [Thu, 1 Sep 2016 21:36:13 +0000 (14:36 -0700)]
Prepare bisection search for runtest integration

Prepares bisection_search.py for run-test integration.
Introduces a --raw-cmd switch which accepts a full dalvikvm
command.

Fixes few bugs.

Test: ./art/tools/bisection-search/bisection_test.py
manual testing

Change-Id: I0272d21fe1e73278837bce76ad3eef632993fbe2

7 years agoMerge "Use the fast path object size for RosAlloc asm stubs"
Mathieu Chartier [Fri, 2 Sep 2016 21:32:59 +0000 (21:32 +0000)]
Merge "Use the fast path object size for RosAlloc asm stubs"

7 years agoAdd -g to art script --perf-report
Mathieu Chartier [Fri, 2 Sep 2016 18:44:11 +0000 (11:44 -0700)]
Add -g to art script --perf-report

Gives a basic call stack, good for knowing what calls what.

Test: art --perf-report

Change-Id: Ifa44040491ed865bf839d62622494d951f2bcd62

7 years agoMerge "Remove duplicate entry."
Nicolas Geoffray [Fri, 2 Sep 2016 18:43:10 +0000 (18:43 +0000)]
Merge "Remove duplicate entry."

7 years agoRemove duplicate entry.
Nicolas Geoffray [Fri, 2 Sep 2016 18:42:22 +0000 (19:42 +0100)]
Remove duplicate entry.

Change-Id: Ic9f172a19adb83028e9d13c8349a732931aec7db

7 years agoUse the fast path object size for RosAlloc asm stubs
Mathieu Chartier [Thu, 1 Sep 2016 21:06:54 +0000 (14:06 -0700)]
Use the fast path object size for RosAlloc asm stubs

Also address comments. MemAllocTest perf on N5X speedup in the noise.

Bug: 9986565

Test: test-art-host -j32, N5X booting

Change-Id: Ic22ca92aab88b37fd66928949bf11264ee3476dc

7 years agoMerge "Blacklist flaky test."
Treehugger Robot [Fri, 2 Sep 2016 14:55:29 +0000 (14:55 +0000)]
Merge "Blacklist flaky test."

7 years agoMerge "verifier: Pass ClassDef as a reference"
Treehugger Robot [Fri, 2 Sep 2016 14:52:27 +0000 (14:52 +0000)]
Merge "verifier: Pass ClassDef as a reference"

7 years agoClean up some includes.
Vladimir Marko [Fri, 2 Sep 2016 11:38:38 +0000 (12:38 +0100)]
Clean up some includes.

Remove some unnecessary includes from header files, replace
others with forward references and add includes to source
files as needed. Reduce dependency on stack.h by pulling
StackReference<> out to its own file.

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

7 years agoMerge "Cache result of an expensive DCHECK"
Treehugger Robot [Fri, 2 Sep 2016 13:41:22 +0000 (13:41 +0000)]
Merge "Cache result of an expensive DCHECK"

7 years agoverifier: Pass ClassDef as a reference
David Brazdil [Fri, 2 Sep 2016 13:13:18 +0000 (14:13 +0100)]
verifier: Pass ClassDef as a reference

Tiny refactor. ClassDef should never be null, yet we pass it as
a pointer, check it is not null and dereference everywhere.

Change-Id: Id89a1f599f1289d3cc00846306a890e06e438f88

7 years agoCache result of an expensive DCHECK
David Brazdil [Fri, 2 Sep 2016 10:42:48 +0000 (11:42 +0100)]
Cache result of an expensive DCHECK

LiveInterval::AddBackEdgeUses tests whether linear order is well
formed on debug builds. This is expensive and can significantly hinder
compilation times when many back edge uses are added.

This patch moves the IsLinearOrderWellFormed test at the end of
linear order generation.

Bug: 31163119
Change-Id: Ic4fe66bee2055f4b2cb065d9451ad5f21ba00676

7 years agoMerge "Revert "Revert "Refactor writing type lookup tables into OAT"""
Treehugger Robot [Fri, 2 Sep 2016 11:32:29 +0000 (11:32 +0000)]
Merge "Revert "Revert "Refactor writing type lookup tables into OAT"""

7 years agoSupport for loading classes from DEX files stored in a ByteBuffer.
Orion Hodson [Wed, 17 Aug 2016 09:51:42 +0000 (10:51 +0100)]
Support for loading classes from DEX files stored in a ByteBuffer.

Bug: http://b/26878838
Test: test-art-target-gtest-dex_file_test

Change-Id: I68845c35784386bde6270102f0079d4f07bc4d03

7 years agoRevert "Revert "Refactor writing type lookup tables into OAT""
David Brazdil [Thu, 1 Sep 2016 16:38:47 +0000 (16:38 +0000)]
Revert "Revert "Refactor writing type lookup tables into OAT""

OatWriter used to write type lookup tables through an mmap of the
DEX section of the OAT file. This approach would not work once the
DEX section is moved into the VDEX file, hence it was rewritten to
write the data through OutputStream.

This reverts commit b92ba6296d4ef5b9a6674120ffaafde7d2511812.

Test: m test-art-host
Bug: 30937355
Change-Id: Id923f2c8a4f9ce2a3834b9886b4358e1b379b83d

7 years agoBlacklist flaky test.
Nicolas Geoffray [Fri, 2 Sep 2016 09:04:52 +0000 (10:04 +0100)]
Blacklist flaky test.

bug:31258002
Change-Id: Ida80028b0fb49208f4eb4d0ba929800b28574902

7 years agoMerge "Disable the from-space memory protection under debug/gcstress."
Treehugger Robot [Fri, 2 Sep 2016 03:09:44 +0000 (03:09 +0000)]
Merge "Disable the from-space memory protection under debug/gcstress."

7 years agoMerge "ART: Use thread annotation macros from base"
Treehugger Robot [Fri, 2 Sep 2016 02:05:00 +0000 (02:05 +0000)]
Merge "ART: Use thread annotation macros from base"

7 years agoMerge "Remove auto-generated executable list"
Colin Cross [Fri, 2 Sep 2016 00:16:33 +0000 (00:16 +0000)]
Merge "Remove auto-generated executable list"

7 years agoMIPS32: Ensure preservation of RA in leaf methods if it's clobbered
Alexey Frunze [Wed, 31 Aug 2016 04:40:46 +0000 (21:40 -0700)]
MIPS32: Ensure preservation of RA in leaf methods if it's clobbered

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

Change-Id: Ia3da5902d967cd7af313f03ebf414320b0063619

7 years agoMerge "ART: Clean up x86 asm in dex cache entrypoints"
Mathieu Chartier [Thu, 1 Sep 2016 23:06:09 +0000 (23:06 +0000)]
Merge "ART: Clean up x86 asm in dex cache entrypoints"

7 years agoMerge changes Id2bc87dc,I17c191ec
Colin Cross [Thu, 1 Sep 2016 22:29:52 +0000 (22:29 +0000)]
Merge changes Id2bc87dc,I17c191ec

* changes:
  Fix naming of libartd-simulator
  Fix debug flag ordering

7 years agoMerge "Make 115-native-bridge idempotent"
Treehugger Robot [Thu, 1 Sep 2016 22:12:27 +0000 (22:12 +0000)]
Merge "Make 115-native-bridge idempotent"

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.

Relanding I8ff4da32a03c219924be7990963e0c3ba90ef316 with fixes to build
the debug versions of executables, which are needed by the tests.

Change-Id: Id941cf5d1a638763cf4cf2bc0412b0782ae21694

7 years agoMerge "MIPS32: Additional bitCount optimizations."
Treehugger Robot [Thu, 1 Sep 2016 21:57:41 +0000 (21:57 +0000)]
Merge "MIPS32: Additional bitCount optimizations."

7 years agoDisable the from-space memory protection under debug/gcstress.
Hiroshi Yamauchi [Thu, 1 Sep 2016 21:27:25 +0000 (14:27 -0700)]
Disable the from-space memory protection under debug/gcstress.

Temporarily for diagnosing the odd memory protection issue on the build
server.

Bug: 31172841
Test: test-art-host with SS and with SS/gcstress.
Change-Id: I915fcdc451ee92b5487c1fcbf8186767830ef1ad

7 years agoMerge "Clean up art_quick_resolve_string for arm64"
Mathieu Chartier [Thu, 1 Sep 2016 16:42:39 +0000 (16:42 +0000)]
Merge "Clean up art_quick_resolve_string for arm64"

7 years agoMerge "Faster allocation fast path"
Mathieu Chartier [Thu, 1 Sep 2016 16:34:48 +0000 (16:34 +0000)]
Merge "Faster allocation fast path"

7 years agoMerge "Revert "Refactor writing type lookup tables into OAT""
David Brazdil [Thu, 1 Sep 2016 16:01:13 +0000 (16:01 +0000)]
Merge "Revert "Refactor writing type lookup tables into OAT""

7 years agoRevert "Refactor writing type lookup tables into OAT"
David Brazdil [Thu, 1 Sep 2016 16:00:30 +0000 (16:00 +0000)]
Revert "Refactor writing type lookup tables into OAT"

Gtest not happy.

This reverts commit 1a069a5baa78e55dfa95ad989dc137517000b7fd.

Change-Id: Iada7a93c1928f7f61462615f3128c6b50bb21859

7 years agoMerge "Refactor writing type lookup tables into OAT"
David Brazdil [Thu, 1 Sep 2016 15:38:40 +0000 (15:38 +0000)]
Merge "Refactor writing type lookup tables into OAT"

7 years agoMerge "Revert "Re-enable boot image string sharpening.""
Vladimir Marko [Thu, 1 Sep 2016 15:35:43 +0000 (15:35 +0000)]
Merge "Revert "Re-enable boot image string sharpening.""

7 years agoRevert "Re-enable boot image string sharpening."
Vladimir Marko [Thu, 1 Sep 2016 15:33:04 +0000 (15:33 +0000)]
Revert "Re-enable boot image string sharpening."

The boot image may not contain the target String.

Bug: 20323084
Bug: 31239436

This reverts commit 9ed010e43c729a801089307c55f20f6d4df8271c.

Change-Id: Id299619ff9866bacd5098f76836355878a478042

7 years agoRefactor writing type lookup tables into OAT
David Brazdil [Wed, 31 Aug 2016 16:15:12 +0000 (17:15 +0100)]
Refactor writing type lookup tables into OAT

OatWriter used to write type lookup tables through an mmap of the
DEX section of the OAT file. This approach would not work once the
DEX section is moved into the VDEX file, hence it was rewritten to
write the data through OutputStream.

Test: m test-art-host
Bug: 30937355
Change-Id: Id89a680e6e7cbdba47fa7e211a48b92d30a82b29

7 years agoMerge "[MIPS] Fix a mips64 mterp bug."
Vladimir Marko [Thu, 1 Sep 2016 12:40:03 +0000 (12:40 +0000)]
Merge "[MIPS] Fix a mips64 mterp bug."

7 years agoMerge "Constant fold Equal/NotEqual between null and non-null."
Vladimir Marko [Thu, 1 Sep 2016 10:17:20 +0000 (10:17 +0000)]
Merge "Constant fold Equal/NotEqual between null and non-null."

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