OSDN Git Service

android-x86/art.git
7 years agoMerge "ART: Properly synchronize test 039"
Treehugger Robot [Fri, 11 Nov 2016 17:27:01 +0000 (17:27 +0000)]
Merge "ART: Properly synchronize test 039"

7 years agoMerge "ART: Expose vreg and visitor in RootInfo"
Treehugger Robot [Fri, 11 Nov 2016 17:26:04 +0000 (17:26 +0000)]
Merge "ART: Expose vreg and visitor in RootInfo"

7 years agoMerge "ART: Rewrite test 913 verification"
Treehugger Robot [Fri, 11 Nov 2016 17:24:24 +0000 (17:24 +0000)]
Merge "ART: Rewrite test 913 verification"

7 years agoMerge "MethodHandles: Fix MethodType::IsConvertible() error."
Orion Hodson [Fri, 11 Nov 2016 15:01:52 +0000 (15:01 +0000)]
Merge "MethodHandles: Fix MethodType::IsConvertible() error."

7 years agoMethodHandles: Fix MethodType::IsConvertible() error.
Orion Hodson [Fri, 11 Nov 2016 12:03:29 +0000 (12:03 +0000)]
MethodHandles: Fix MethodType::IsConvertible() error.

Conversions between non-numeric primitives and their boxed equivalents
were being rejected.

Test: m test-art-host-run-test-956-methodhandles
Bug: 30550796
Change-Id: I4ee255be3a4549246548185e362789561382ba1b

7 years agoMerge "Dump c1visualizer output before and after each pass."
Nicolas Geoffray [Fri, 11 Nov 2016 11:57:21 +0000 (11:57 +0000)]
Merge "Dump c1visualizer output before and after each pass."

7 years agoMerge "ARM: VIXL32: Implement InstanceOf, InvokeInterface and others."
Nicolas Geoffray [Fri, 11 Nov 2016 11:49:11 +0000 (11:49 +0000)]
Merge "ARM: VIXL32: Implement InstanceOf, InvokeInterface and others."

7 years agoMerge "MethodHandles: Enable return value conversions."
Orion Hodson [Fri, 11 Nov 2016 10:16:24 +0000 (10:16 +0000)]
Merge "MethodHandles: Enable return value conversions."

7 years agoMerge "Fix mips build"
Mathieu Chartier [Fri, 11 Nov 2016 01:55:22 +0000 (01:55 +0000)]
Merge "Fix mips build"

7 years agoFix mips build
Mathieu Chartier [Fri, 11 Nov 2016 01:52:42 +0000 (17:52 -0800)]
Fix mips build

Test: untested
Change-Id: Ied193834bf2a187b0cb8ffdbdece72023698b1f6

7 years agoMerge "Use entrypoint switching to reduce code size of GcRoot read barrier"
Mathieu Chartier [Fri, 11 Nov 2016 00:58:22 +0000 (00:58 +0000)]
Merge "Use entrypoint switching to reduce code size of GcRoot read barrier"

7 years agoART: Rewrite test 913 verification
Andreas Gampe [Thu, 10 Nov 2016 06:54:25 +0000 (22:54 -0800)]
ART: Rewrite test 913 verification

Make the test more robust wrt/ the liberty the specification
gives for iteration order. Also make it robust wrt/ JIT by
waiting for any compilation to finish before following
references.

This reverts commit a35c584d7eb0ae02c9511f5f891b284362b12e28.
This reverts commit 8c433b9e45a26e3bde123a5b2697ca801ae8b039.

Test: m ART_TEST_INTERPRETER=true ART_TEST_JIT=true test-art-host-run-test-913-heaps
Change-Id: Ia94c597f4f7b66ab1014efb483b3aed2e859099a

7 years agoUse entrypoint switching to reduce code size of GcRoot read barrier
Mathieu Chartier [Wed, 9 Nov 2016 22:32:49 +0000 (14:32 -0800)]
Use entrypoint switching to reduce code size of GcRoot read barrier

Set the read barrier mark register entrypoints to null when the GC
is not marking. The compiler uses this to avoid needing to load the
is_gc_marking boolean.

Code size results on ritzperf CC:
arm32: 13439400 -> 13242792 (-1.5%)
arm64: 16380544 -> 16208512 (-1.05%)

Implemented for arm32 and arm64. TODO: Consider implementing on x86.

Bug: 32638713
Bug: 29516974

Test: test-art-host + run ritzperf
Change-Id: I527ca5dc4cd43950ba43b872d0ac81e1eb5791eb

7 years agoMerge "Use enum for read barrier options in compiler"
Mathieu Chartier [Thu, 10 Nov 2016 22:34:40 +0000 (22:34 +0000)]
Merge "Use enum for read barrier options in compiler"

7 years agoART: Properly synchronize test 039
Andreas Gampe [Thu, 10 Nov 2016 21:40:32 +0000 (13:40 -0800)]
ART: Properly synchronize test 039

Properly synchronize the test so that the output is deterministic.

Test: m test-art-host-run-test-039-join-main
Change-Id: Ia2212c7f77c3bf016d588014b22fa5abaef076e3

7 years agoUse enum for read barrier options in compiler
Mathieu Chartier [Thu, 10 Nov 2016 19:25:57 +0000 (11:25 -0800)]
Use enum for read barrier options in compiler

Enums are just phenomenal. Also fixed a double load error in x86
interface check cast fast path.

Test: test-art-host

Change-Id: Iea403ce579145b6a294073f3900ad6921c1a0d53

7 years agoMerge "Do not inline loops without exit edges"
David Sehr [Thu, 10 Nov 2016 20:41:12 +0000 (20:41 +0000)]
Merge "Do not inline loops without exit edges"

7 years agoMethodHandles: Enable return value conversions.
Orion Hodson [Wed, 9 Nov 2016 08:32:42 +0000 (08:32 +0000)]
MethodHandles: Enable return value conversions.

Enables return values conversions and simplify the type conversion
logic. Ensures check for WrongMethodTypeExceptions before invoking a
method handle.

Test: m test-art-host-run-test-956-methodhandles
Bug: 30550796

Change-Id: I8add3ad0a19b43010946b4fb9f1c0f0949287860

7 years agoMerge "Add capabilities for jvmti."
Treehugger Robot [Thu, 10 Nov 2016 18:55:40 +0000 (18:55 +0000)]
Merge "Add capabilities for jvmti."

7 years agoMerge "Avoid read barriers for inlined check cast"
Mathieu Chartier [Thu, 10 Nov 2016 18:05:50 +0000 (18:05 +0000)]
Merge "Avoid read barriers for inlined check cast"

7 years agoAdd capabilities for jvmti.
Alex Light [Wed, 17 Aug 2016 16:56:24 +0000 (09:56 -0700)]
Add capabilities for jvmti.

Make a skeleton for jvmti capabilities.

Bug: 31455788
Test: m -j40 test-art-host

Change-Id: Ia1f96450d8a1ee59b9db66cf65492154d61fab48

7 years agoDump c1visualizer output before and after each pass.
Nicolas Geoffray [Thu, 10 Nov 2016 15:19:15 +0000 (15:19 +0000)]
Dump c1visualizer output before and after each pass.

In order to get the last state of a graph before a crash.

Test: dex2oat --dump-cfg
Change-Id: I461a26a47a170b95fadb9da21a443af26fe52181

7 years agoMerge "MIPS32: Add missing swaps to codegen"
Treehugger Robot [Thu, 10 Nov 2016 15:59:20 +0000 (15:59 +0000)]
Merge "MIPS32: Add missing swaps to codegen"

7 years agoMerge "Fix 552-checker-sharpening for MIPS32R6"
Treehugger Robot [Thu, 10 Nov 2016 15:28:48 +0000 (15:28 +0000)]
Merge "Fix 552-checker-sharpening for MIPS32R6"

7 years agoARM: VIXL32: Implement InstanceOf, InvokeInterface and others.
Artem Serov [Fri, 14 Oct 2016 14:58:56 +0000 (15:58 +0100)]
ARM: VIXL32: Implement InstanceOf, InvokeInterface and others.

More than 100 tests now start to pass.

Test: export ART_USE_VIXL_ARM_BACKEND=true && \
      mma test-art-host dist && mma test-art-target dist

Change-Id: I7a30241d42bf0beec254f6988646282f4ea46cef

7 years agoMIPS32: Add missing swaps to codegen
Goran Jakovljevic [Thu, 22 Sep 2016 07:26:01 +0000 (09:26 +0200)]
MIPS32: Add missing swaps to codegen

Add swaps between fp registers and stack.
Also added emit_swap_mips_test.

Test: mma -j2 test-art-target-run-test on CI20
Test: mma test-art-host-gtest-emit_swap_mips_test

Change-Id: I38e7be6a86d9ad36a82e9d4293e9a6971b6e016a

7 years agoMerge "Change string compression encoding."
Treehugger Robot [Thu, 10 Nov 2016 13:58:34 +0000 (13:58 +0000)]
Merge "Change string compression encoding."

7 years agoFix 552-checker-sharpening for MIPS32R6
Goran Jakovljevic [Thu, 10 Nov 2016 13:50:18 +0000 (14:50 +0100)]
Fix 552-checker-sharpening for MIPS32R6

We can't have MIPS32R2 or MIPS32R6 specific checker so remove
the problematic one which differ for these two versions.

Test: ./run-test 552-checker-sharpening in QEMU

Change-Id: I5878fcaa5a43195ec98b607e37ee3029a2e57daf

7 years agoMerge "MethodHandles: Add a test case for MethodHandles.permuteArguments."
Narayan Kamath [Thu, 10 Nov 2016 13:41:03 +0000 (13:41 +0000)]
Merge "MethodHandles: Add a test case for MethodHandles.permuteArguments."

7 years agoMerge "MethodHandles: Add tests for MethodHandles.filterReturnValue."
Narayan Kamath [Thu, 10 Nov 2016 13:40:28 +0000 (13:40 +0000)]
Merge "MethodHandles: Add tests for MethodHandles.filterReturnValue."

7 years agoMerge "ART jitted code profiling support."
Nicolas Geoffray [Thu, 10 Nov 2016 10:34:10 +0000 (10:34 +0000)]
Merge "ART jitted code profiling support."

7 years agoMerge "Have `make` report a failing gtest run as a top-level target."
Roland Levillain [Thu, 10 Nov 2016 10:19:19 +0000 (10:19 +0000)]
Merge "Have `make` report a failing gtest run as a top-level target."

7 years agoMerge "ART: Temporarily disable test 913 for non-aot configs"
Andreas Gampe [Thu, 10 Nov 2016 07:20:35 +0000 (07:20 +0000)]
Merge "ART: Temporarily disable test 913 for non-aot configs"

7 years agoART: Temporarily disable test 913 for non-aot configs
Andreas Gampe [Thu, 10 Nov 2016 07:17:39 +0000 (23:17 -0800)]
ART: Temporarily disable test 913 for non-aot configs

Until the test is generalized to recognize all allowed outputs,
disable non-default configurations.

Follow-up to commit 8c433b9e45a26e3bde123a5b2697ca801ae8b039 to
also disable for no-relocate configurations.

Bug: 31385354
Test: m ART_TEST_RUN_TEST_NO_RELOCATE=true test-art-host-run-test-913-heaps
Change-Id: If29ffdcca1fbd69bbac559dce99e84dc2592539a

7 years agoMerge "ART: Temporarily disable test 913 for non-aot configs"
Andreas Gampe [Thu, 10 Nov 2016 05:03:06 +0000 (05:03 +0000)]
Merge "ART: Temporarily disable test 913 for non-aot configs"

7 years agoART: Temporarily disable test 913 for non-aot configs
Andreas Gampe [Thu, 10 Nov 2016 03:33:08 +0000 (19:33 -0800)]
ART: Temporarily disable test 913 for non-aot configs

Until the test is generalized to recognize all allowed outputs,
disable non-default configurations.

Bug: 31385354
Test: m ART_TEST_INTERPRETER=true ART_TEST_JIT=true test-art-host-run-test-913-heaps
Change-Id: Iad10879391d8029445032d7b5a69e6ebf2672b9e

7 years agoMerge "Fix heap poisoning build"
Mathieu Chartier [Thu, 10 Nov 2016 02:19:10 +0000 (02:19 +0000)]
Merge "Fix heap poisoning build"

7 years agoFix heap poisoning build
Mathieu Chartier [Thu, 10 Nov 2016 00:33:54 +0000 (16:33 -0800)]
Fix heap poisoning build

Bug: 32577579

Test: mm build-art

Change-Id: I394691334ae2029810e069c768d34077d36679e2

7 years agoMerge "ART: Add reference following code"
Treehugger Robot [Thu, 10 Nov 2016 00:39:22 +0000 (00:39 +0000)]
Merge "ART: Add reference following code"

7 years agoAvoid read barriers for inlined check cast
Mathieu Chartier [Wed, 9 Nov 2016 23:18:27 +0000 (15:18 -0800)]
Avoid read barriers for inlined check cast

Avoiding read barriers improves speed and reduces code size.

Doing this can never result in false positives, only false negatives.
These false negatives are handled correcly by rechecking in the
entrypoint.

Ritzperf code size for CC:
arm32: 13439400->13300136 (-1.04%)
arm64: 16405120->16253568 (-0.92%)

Perf: TODO

Bug: 29516974
Bug: 12687968

Test: test-art-host, run ritzperf both with CC

Change-Id: Ie024e0b1e8ee415781fb73e8029e87e8a5318f86

7 years agoMerge "Add interface check cast fast path to arm, arm64, x86"
Mathieu Chartier [Wed, 9 Nov 2016 23:16:16 +0000 (23:16 +0000)]
Merge "Add interface check cast fast path to arm, arm64, x86"

7 years agoDo not inline loops without exit edges
David Sehr [Fri, 4 Nov 2016 22:48:34 +0000 (15:48 -0700)]
Do not inline loops without exit edges

Fixes an issue with LinearOrder after inlining a function containing a
loop that has no exit edge.  The failure is due to incorrect loop
information being computed for blocks that are not on a path to the
inlined function's return.  They should not be considered part of the
caller's enclosing loop, but are today.

Bug: 32547653
Test: run-test --host 478-checker-inline-noreturn
Change-Id: I9694a1cb861430051c801d07f7ce29752332cba5

7 years agoMerge "Revert "Rename vdex-fd to output-vdex-fd, add input-vdex-fd.""
Nicolas Geoffray [Wed, 9 Nov 2016 21:32:14 +0000 (21:32 +0000)]
Merge "Revert "Rename vdex-fd to output-vdex-fd, add input-vdex-fd.""

7 years agoRevert "Rename vdex-fd to output-vdex-fd, add input-vdex-fd."
Nicolas Geoffray [Wed, 9 Nov 2016 21:31:26 +0000 (21:31 +0000)]
Revert "Rename vdex-fd to output-vdex-fd, add input-vdex-fd."

Mishandled create_vdex_filename in installd.

This reverts commit bc654d0cbb4f45057f9482ad81cb613386bbce34.

Change-Id: I78f8fcd1c63133624f5bba01864ab858da0451d1

7 years agoART: Expose vreg and visitor in RootInfo
Andreas Gampe [Wed, 9 Nov 2016 00:01:00 +0000 (16:01 -0800)]
ART: Expose vreg and visitor in RootInfo

Expose the register and visitor in JavaFrameRootInfo, to be able
to investigate a root programmatically.

Also mark StackVisitor::GetFrameDepth() as a const function.

Bug: 31385354
Test: m test-art-host
Change-Id: Ie05d2cfe3f4e9def89311bb18bd0c0bbf1a45625

7 years agoART: Add reference following code
Andreas Gampe [Thu, 3 Nov 2016 18:04:15 +0000 (11:04 -0700)]
ART: Add reference following code

Add FollowReferences support. This is a work in progress.
Specific support for the metadata will be added iteratively.

Add a basic test to 913-heaps.

Bug: 31385354
Test: m test-art-host
Change-Id: I832b05a7397dc96cd9a868020dd7029255f6de87

7 years agoMerge "ART: Refactor some TI test code for reuse"
Treehugger Robot [Wed, 9 Nov 2016 19:27:27 +0000 (19:27 +0000)]
Merge "ART: Refactor some TI test code for reuse"

7 years agoMerge "Allow read side effects for removing dead instructions."
Aart Bik [Wed, 9 Nov 2016 19:06:11 +0000 (19:06 +0000)]
Merge "Allow read side effects for removing dead instructions."

7 years agoAdd interface check cast fast path to arm, arm64, x86
Mathieu Chartier [Sat, 5 Nov 2016 01:13:04 +0000 (18:13 -0700)]
Add interface check cast fast path to arm, arm64, x86

Bug: 12687968
Bug: 32577579

Test: test-art-host, test-art-target CC

Change-Id: Ia57099d499fa704803cc5f0135f0f53fefe39826

7 years agoAllow read side effects for removing dead instructions.
Aart Bik [Mon, 7 Nov 2016 16:49:28 +0000 (08:49 -0800)]
Allow read side effects for removing dead instructions.

Rationale:
Instructions that only have the harmless read side effect may
be removed when dead as well, we were too strict previously.
As proof of concept, this cl also provides more accurate information
on a few string related intrinsics. This removes the dead indexOf
from CaffeineString (17% performance improvement, big bottleneck
of the StringBuffer's toString() still remains in loop).

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

7 years agoMerge "Revert "JIT root tables.""
Nicolas Geoffray [Wed, 9 Nov 2016 17:30:49 +0000 (17:30 +0000)]
Merge "Revert "JIT root tables.""

7 years agoRevert "JIT root tables."
Nicolas Geoffray [Wed, 9 Nov 2016 17:30:31 +0000 (17:30 +0000)]
Revert "JIT root tables."

May be the offender for jit-gcstress failure of 902.

This reverts commit ac3ebc3150760425ed00abd56da48f9a6e0666bc.

Change-Id: I9ea6c9236fd1729fed7d1868dd8a111172932308

7 years agoMerge "Revert "Support kJitTableAddress in x86/arm/arm64.""
Nicolas Geoffray [Wed, 9 Nov 2016 17:30:00 +0000 (17:30 +0000)]
Merge "Revert "Support kJitTableAddress in x86/arm/arm64.""

7 years agoRevert "Support kJitTableAddress in x86/arm/arm64."
Nicolas Geoffray [Wed, 9 Nov 2016 17:29:03 +0000 (17:29 +0000)]
Revert "Support kJitTableAddress in x86/arm/arm64."

Revert this in order to revert https://android-review.googlesource.com/#/c/285781/

This reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.

Change-Id: I1888fba1c6f712cae4aec4ea4719b74a46da156c

7 years agoHave `make` report a failing gtest run as a top-level target.
Roland Levillain [Wed, 9 Nov 2016 16:38:42 +0000 (16:38 +0000)]
Have `make` report a failing gtest run as a top-level target.

Before, if an individual gtest such (as
`test-art-host-gtest-output_stream_test64`) was invoked as
`make`'s top-level target and failing, `make` would not
report it as such through its exit status (it would be 0
whatever the result). However, when run as part of a
compound test target (such as
`test-art-host-gtest-output_stream_test` or
`test-art-host-gtest`), `make` would actually report this
test's (and maybe others') failure with a non-zero exit
status. This CL forces `make` to report a non-zero exit
status in the former case without breaking the latter one.

Test: Amend a gtest such as compiler/linker/output_stream_test.cc
    to make it artificially fail, and run it with:
      make test-art-host-gtest-output_stream_test
      make test-art-host-gtest-output_stream_test64
Bug: 31755702

Change-Id: Icbb6fef592f14d73808576e7fcb0e9d7079ec9a2

7 years agoART: Refactor some TI test code for reuse
Andreas Gampe [Wed, 9 Nov 2016 01:02:19 +0000 (17:02 -0800)]
ART: Refactor some TI test code for reuse

Pull out helper code for creating arrays of data.

Bug: 31385354
Test: m test-art-host
Change-Id: I916fffa18f5a61bd17acbdbdaffce5b4c66a33ab

7 years agoMerge "Reduce arena memory usage when changing graph structure."
Treehugger Robot [Wed, 9 Nov 2016 16:42:45 +0000 (16:42 +0000)]
Merge "Reduce arena memory usage when changing graph structure."

7 years agoMerge "Support kJitTableAddress in x86/arm/arm64."
Nicolas Geoffray [Wed, 9 Nov 2016 16:25:23 +0000 (16:25 +0000)]
Merge "Support kJitTableAddress in x86/arm/arm64."

7 years agoMerge "Remove timeout for the 570-checker-osr test"
Treehugger Robot [Wed, 9 Nov 2016 16:01:04 +0000 (16:01 +0000)]
Merge "Remove timeout for the 570-checker-osr test"

7 years agoReduce arena memory usage when changing graph structure.
Vladimir Marko [Wed, 9 Nov 2016 14:11:37 +0000 (14:11 +0000)]
Reduce arena memory usage when changing graph structure.

Use swap() to reuse previously allocated memory. Use
range insertion instead of individual push_back()s.

Test: m test-art-host.
Change-Id: I7174f8cc66937f34b452ff7268a8806ca94e7573

7 years agoMethodHandles: Add a test case for MethodHandles.permuteArguments.
Narayan Kamath [Tue, 8 Nov 2016 19:38:48 +0000 (19:38 +0000)]
MethodHandles: Add a test case for MethodHandles.permuteArguments.

Bug: 30550796
Test: make test-art-host
Change-Id: Idf1f330422a3be769e175f3e46c181d94217b9fa

7 years agoSupport kJitTableAddress in x86/arm/arm64.
Nicolas Geoffray [Wed, 9 Nov 2016 10:36:29 +0000 (10:36 +0000)]
Support kJitTableAddress in x86/arm/arm64.

test: test-art-host test-art-target, angler boots and runs.
Change-Id: I3654ae2809d4d759db76ee1ada1c17f3a9c3b392

7 years agoMerge "Fix 552-checker-sharpening for PIC test."
Treehugger Robot [Wed, 9 Nov 2016 14:20:41 +0000 (14:20 +0000)]
Merge "Fix 552-checker-sharpening for PIC test."

7 years agoRemove timeout for the 570-checker-osr test
Goran Jakovljevic [Fri, 4 Nov 2016 13:31:20 +0000 (14:31 +0100)]
Remove timeout for the 570-checker-osr test

The test is failing when running on emulator or slower devices.
Timeout is not needed anymore since all architectures have support
for OSR.

Test: ./run-test --jit 570-checker-osr

Change-Id: I3e84edfef3487e154e79688b81ad62dba45f9a2f

7 years agoMerge "MethodHandles: Remove obsolete TODO."
Narayan Kamath [Wed, 9 Nov 2016 14:05:33 +0000 (14:05 +0000)]
Merge "MethodHandles: Remove obsolete TODO."

7 years agoMerge "Rename vdex-fd to output-vdex-fd, add input-vdex-fd."
Nicolas Geoffray [Wed, 9 Nov 2016 13:57:23 +0000 (13:57 +0000)]
Merge "Rename vdex-fd to output-vdex-fd, add input-vdex-fd."

7 years agoFix 552-checker-sharpening for PIC test.
Vladimir Marko [Wed, 9 Nov 2016 12:46:38 +0000 (12:46 +0000)]
Fix 552-checker-sharpening for PIC test.

And remove obsolete HLoadString::LoadKind::kDexCacheAddress.

Test: m ART_TEST_PIC_TEST=true test-art-host
Change-Id: I3e7a1a98c2c7eba5ea10954d7efcf743a807c300

7 years agoMethodHandles: Remove obsolete TODO.
Narayan Kamath [Wed, 9 Nov 2016 11:14:38 +0000 (11:14 +0000)]
MethodHandles: Remove obsolete TODO.

It was addressed by change 0d781e6e17a3f6285736c590001b59d50879f13b.

Test: make build-art-host
Change-Id: Ifb3f7fa2ffc245e88c77ca41268c376be1611308

7 years agoChange string compression encoding.
Vladimir Marko [Thu, 13 Oct 2016 18:29:53 +0000 (19:29 +0100)]
Change string compression encoding.

Encode the string compression flag as the least significant
bit of the "count" field, with 0 meaning compressed and 1
meaning uncompressed.

The main vdex file is a tiny bit larger (+28B for prebuilt
boot images, +32 for on-device built images) and the oat
file sizes change. Measured on Nexus 9, AOSP ToT, these
changes are insignificant when string compression is
disabled (-200B for the 32-bit boot*.oat for prebuilt boot
image, -4KiB when built on the device attributable to
rounding, -16B for 64-bit boot*.oat for prebuilt boot image,
no change when built on device) but with string compression
enabled we get significant differences:
  prebuilt multi-part boot image:
    - 32-bit boot*.oat: -28KiB
    - 64-bit boot*.oat: -24KiB
  on-device built single boot image:
    - 32-bit boot.oat: -32KiB
    - 64-bit boot.oat: -28KiB
The boot image oat file overhead for string compression:
  prebuilt multi-part boot image:
    - 32-bit boot*.oat: before: ~80KiB after: ~52KiB
    - 64-bit boot*.oat: before: ~116KiB after: ~92KiB
  on-device built single boot image:
    - 32-bit boot.oat: before: 92KiB after: 60KiB
    - 64-bit boot.oat: before: 116KiB after: 92KiB

The differences in the SplitStringBenchmark seem to be lost
in the noise.

Test: Run ART test suite on host and Nexus 9 with Optimizing.
Test: Run ART test suite on host and Nexus 9 with interpreter.
Test: All of the above with string compression enabled.
Bug: 31040547

Change-Id: I7570c2b700f1a31004a2d3c18b1cc30046d35a74

7 years agoMethodHandles: Add tests for MethodHandles.filterReturnValue.
Narayan Kamath [Tue, 8 Nov 2016 18:36:16 +0000 (18:36 +0000)]
MethodHandles: Add tests for MethodHandles.filterReturnValue.

Test: make test-art-host
Bug: 30550796
Change-Id: I2c8f25b003cbeee24e7603637169200a02d31e1c

7 years agoMerge "MethodHandles: Add tests for MethodHandle.bindTo."
Narayan Kamath [Wed, 9 Nov 2016 10:41:21 +0000 (10:41 +0000)]
Merge "MethodHandles: Add tests for MethodHandle.bindTo."

7 years agoMethodHandles: Add tests for MethodHandle.bindTo.
Narayan Kamath [Fri, 4 Nov 2016 14:41:19 +0000 (14:41 +0000)]
MethodHandles: Add tests for MethodHandle.bindTo.

Test: make test-art-host
Bug: 30550796
Change-Id: I7e8bd8c8cae5f874f7743fd1a0a361875fcb997e

7 years agoRename vdex-fd to output-vdex-fd, add input-vdex-fd.
Nicolas Geoffray [Mon, 7 Nov 2016 16:23:11 +0000 (16:23 +0000)]
Rename vdex-fd to output-vdex-fd, add input-vdex-fd.

In preparation for installd changes around vdex.

bug:30937355
Test: device boots, oat_file_assistant_test

Change-Id: I7eba67f278a03d77b3e66fd24a96fbfd442db678

7 years agoMerge "JIT root tables."
Nicolas Geoffray [Wed, 9 Nov 2016 09:55:45 +0000 (09:55 +0000)]
Merge "JIT root tables."

7 years agoMerge "MethodHandles: Constructor support"
Orion Hodson [Wed, 9 Nov 2016 08:44:00 +0000 (08:44 +0000)]
Merge "MethodHandles: Constructor support"

7 years agoMerge "ART: Fix tidy warnings"
Treehugger Robot [Wed, 9 Nov 2016 01:48:19 +0000 (01:48 +0000)]
Merge "ART: Fix tidy warnings"

7 years agoMerge "Allow HDeoptimize to co-exist with LSE."
Mingyao Yang [Tue, 8 Nov 2016 23:29:12 +0000 (23:29 +0000)]
Merge "Allow HDeoptimize to co-exist with LSE."

7 years agoMerge "ART: Refactor jfieldID handling"
Treehugger Robot [Tue, 8 Nov 2016 23:21:21 +0000 (23:21 +0000)]
Merge "ART: Refactor jfieldID handling"

7 years agoMerge "Change check cast entrypoint to check instance of"
Mathieu Chartier [Tue, 8 Nov 2016 23:14:22 +0000 (23:14 +0000)]
Merge "Change check cast entrypoint to check instance of"

7 years agoART: Fix tidy warnings
Andreas Gampe [Tue, 8 Nov 2016 16:09:33 +0000 (08:09 -0800)]
ART: Fix tidy warnings

Switch to char versions of find variants.

Add "explicit" constructor variants or refactor and
remove defaults.

Use const references.

Bug: 32619234
Test: m test-art-host
Change-Id: I970cc2f47d6cf8f0c74104b994b075b2fafb3d45

7 years agoART: Refactor jfieldID handling
Andreas Gampe [Tue, 8 Nov 2016 21:20:52 +0000 (13:20 -0800)]
ART: Refactor jfieldID handling

ArtField objects have been native since Marshmallow.
Remove the dependency on being runnable. Refactor the
code into the jni_internal header.

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

7 years agoMerge "ART: Refactor jmethodID handling"
Treehugger Robot [Tue, 8 Nov 2016 21:15:39 +0000 (21:15 +0000)]
Merge "ART: Refactor jmethodID handling"

7 years agoChange check cast entrypoint to check instance of
Mathieu Chartier [Tue, 8 Nov 2016 00:17:26 +0000 (16:17 -0800)]
Change check cast entrypoint to check instance of

Reduces code size since we do not need to reload class before
calling slow path.

TODO: Delete read barriers in the check cast code since the slow
path will retry with the proper read barriers if the check fails.

Bug: 12687968
Bug: 29516974

Test: test-art-host + test-art-target with CC

Change-Id: Ia4eb9bbe3fe2d2016e44523cf0451210828d7b88

7 years agoJIT root tables.
Nicolas Geoffray [Wed, 5 Oct 2016 12:13:50 +0000 (13:13 +0100)]
JIT root tables.

Implement root tables for the JIT. Each JIT compiled method
gets a table allocated before the stack maps.

The table gets visited through Runtime::SweepSystemWeaks.

Implement String roots for x86_64 as an example.

Test: test-art-host test-art-target

Change-Id: Id3d5bc67479e08b52dd4b253e970201203a0f0d2

7 years agoMethodHandles: Constructor support
Orion Hodson [Fri, 4 Nov 2016 11:09:53 +0000 (11:09 +0000)]
MethodHandles: Constructor support

Test: m test-art-host-run-test-956-methodhandles
Bug: 30550796

Change-Id: Ied466d7e0f0f0b472e3a28909ca712dfdb99e422

7 years agoMerge "Fix SimplifyIfs() trying to redirect exception handler edges."
Vladimir Marko [Tue, 8 Nov 2016 13:50:23 +0000 (13:50 +0000)]
Merge "Fix SimplifyIfs() trying to redirect exception handler edges."

7 years agoMerge "Add String.indexOf() benchmark."
Vladimir Marko [Tue, 8 Nov 2016 12:32:17 +0000 (12:32 +0000)]
Merge "Add String.indexOf() benchmark."

7 years agoFix SimplifyIfs() trying to redirect exception handler edges.
Vladimir Marko [Thu, 3 Nov 2016 13:01:28 +0000 (13:01 +0000)]
Fix SimplifyIfs() trying to redirect exception handler edges.

Test: 622-simplifyifs-exception-edges
Test: m test-art-host
Bug: 32545860
Bug: 32546110
Bug: 18051191
Change-Id: I641ed73baace840411fc5651937bbc80e79b0c46

7 years agoMerge "Argument conversions for setter/getter MethodHandles."
Treehugger Robot [Tue, 8 Nov 2016 09:19:52 +0000 (09:19 +0000)]
Merge "Argument conversions for setter/getter MethodHandles."

7 years agoArgument conversions for setter/getter MethodHandles.
Orion Hodson [Wed, 26 Oct 2016 09:56:25 +0000 (10:56 +0100)]
Argument conversions for setter/getter MethodHandles.

Test: m test-art-host-run-test-959-invoke-polymorphic-accessors
Bug: 30550796

Change-Id: I9898605fc9f9f8a80f47f9559f3ccb99b02b07c8

7 years agoART: Refactor jmethodID handling
Andreas Gampe [Tue, 8 Nov 2016 00:48:23 +0000 (16:48 -0800)]
ART: Refactor jmethodID handling

ArtMethod objects have been native since Marshmallow.
Remove the dependency on being runnable. Refactor the
code into the jni_internal header.

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

7 years agoMerge "ART: Extend Object tag table to be explicitly lockable"
Treehugger Robot [Tue, 8 Nov 2016 02:26:40 +0000 (02:26 +0000)]
Merge "ART: Extend Object tag table to be explicitly lockable"

7 years agoMerge "Add forwarding address checks for X86, arm, arm64"
Treehugger Robot [Mon, 7 Nov 2016 23:07:30 +0000 (23:07 +0000)]
Merge "Add forwarding address checks for X86, arm, arm64"

7 years agoMerge "ART: Add Unlink to FdFile"
Treehugger Robot [Mon, 7 Nov 2016 21:27:46 +0000 (21:27 +0000)]
Merge "ART: Add Unlink to FdFile"

7 years agoMerge "ART: Make excludes explicit"
Treehugger Robot [Mon, 7 Nov 2016 21:02:27 +0000 (21:02 +0000)]
Merge "ART: Make excludes explicit"

7 years agoAdd forwarding address checks for X86, arm, arm64
Mathieu Chartier [Thu, 3 Nov 2016 18:15:04 +0000 (11:15 -0700)]
Add forwarding address checks for X86, arm, arm64

Added to READ_BARRIER_MARK_REG.

Bug: 30162165

Test: test-art-host, test-art-target

Change-Id: I15cf0d51ed3d22fa401e80ffac3877d61593527c

7 years agoMerge "Support genrules with multiple tools"
Colin Cross [Mon, 7 Nov 2016 20:28:25 +0000 (20:28 +0000)]
Merge "Support genrules with multiple tools"

7 years agoART: Add Unlink to FdFile
Andreas Gampe [Fri, 24 Jun 2016 17:49:32 +0000 (10:49 -0700)]
ART: Add Unlink to FdFile

Add Unlink function that tries to unlink the file if it
was created with a file path. The function tries to
ensure that it does not unlink a newer file.

Add a parameter to Erase to add unlinking.

Test: m test-art-host-gtest-fd_file_test
Change-Id: I49993bb94aec10d5c8d9b2cbea30ebaa255b99e1

7 years agoSupport genrules with multiple tools
Colin Cross [Fri, 4 Nov 2016 22:31:17 +0000 (15:31 -0700)]
Support genrules with multiple tools

To allow genrules with more than one tool, rename the tool property to
tools and make it an array, replace $tool with $(location <label>),
and use $() for other variables for consistency.

Bug: 31948427
Test: compare build.ninja
Change-Id: I8d53510ac081ae20835b3ab7dfee3d74c520ab4d
(cherry picked from commit 7d332965ea44f54ddeedc9b7fadcf2e5b3259f3a)

7 years agoART: Extend Object tag table to be explicitly lockable
Andreas Gampe [Mon, 7 Nov 2016 18:10:21 +0000 (10:10 -0800)]
ART: Extend Object tag table to be explicitly lockable

Expose the lock for the system weak holder. Add functions to lock
and unlock the object tagging table, and add accessors that assume
the table is already locked.

Bug: 31385354
Test: m test-art-host
Change-Id: I5a4328b0d439d13e6ace7965e22f01bbf8130f20