OSDN Git Service

android-x86/art.git
7 years agoMerge "Fix use of std::stoi without error handling."
Jeff Hao [Tue, 15 Nov 2016 02:35:38 +0000 (02:35 +0000)]
Merge "Fix use of std::stoi without error handling."

7 years agoMerge "Optimize non-intrinsic object array copy for Baker."
Treehugger Robot [Mon, 14 Nov 2016 23:44:49 +0000 (23:44 +0000)]
Merge "Optimize non-intrinsic object array copy for Baker."

7 years agoFix use of std::stoi without error handling.
Jeff Hao [Mon, 14 Nov 2016 23:31:06 +0000 (15:31 -0800)]
Fix use of std::stoi without error handling.

Changed to use strtoul, with a break if it fails to read the checksum.

Test: mm test-art-host
Bug: 32066687
Change-Id: Ic1299c23aae15a8329ad57b4eca5c0857f6eefb6

7 years agoMerge "Change 64 bit atomic counter to size_t"
Mathieu Chartier [Mon, 14 Nov 2016 23:08:34 +0000 (23:08 +0000)]
Merge "Change 64 bit atomic counter to size_t"

7 years agoOptimize non-intrinsic object array copy for Baker.
Hiroshi Yamauchi [Mon, 14 Nov 2016 21:42:50 +0000 (13:42 -0800)]
Optimize non-intrinsic object array copy for Baker.

Check the gray bit per array rather than per element.

Bug: 12687968
Test: test-art-host with CC.
Change-Id: I20b44e522e66f0b156644b93a2885a8e7f40f8db

7 years agoMerge "Clean up interface check cast"
Mathieu Chartier [Mon, 14 Nov 2016 20:49:27 +0000 (20:49 +0000)]
Merge "Clean up interface check cast"

7 years agoClean up interface check cast
Mathieu Chartier [Mon, 14 Nov 2016 18:50:29 +0000 (10:50 -0800)]
Clean up interface check cast

Changed arm, arm64 to use less labels and removed forward branch
in the success case.

Cleaned up X86, X86_64 to remove the is_null label.

Bug: 12687968
Bug: 32577579

Test: test-art-host, test-art-target CC
Change-Id: Iba426dff548b2ef42198fad13efeb075f7c724a7

7 years agoMerge "ART: Make test 030 slightly more robust"
Treehugger Robot [Mon, 14 Nov 2016 18:18:12 +0000 (18:18 +0000)]
Merge "ART: Make test 030 slightly more robust"

7 years agoMerge "Revert "Revert "Revert "JIT root tables.""""
Nicolas Geoffray [Mon, 14 Nov 2016 12:41:12 +0000 (12:41 +0000)]
Merge "Revert "Revert "Revert "JIT root tables.""""

7 years agoRevert "Revert "Revert "JIT root tables."""
Nicolas Geoffray [Mon, 14 Nov 2016 12:40:52 +0000 (12:40 +0000)]
Revert "Revert "Revert "JIT root tables."""

libcore failures:
dalvikvm32 F 11-14 03:04:06 14870 14870 jit_code_cache.cc:310] Check failed: new_string != nullptr

This reverts commit 75afcdd3503a8a8518e5b23d21b6e73306ce39ce.

Change-Id: I5a6b6b48aa79a763d1ff1ba4d85d63811254787d

7 years agoMerge "Update test expectation."
Nicolas Geoffray [Mon, 14 Nov 2016 12:38:11 +0000 (12:38 +0000)]
Merge "Update test expectation."

7 years agoUpdate test expectation.
Nicolas Geoffray [Mon, 14 Nov 2016 12:36:55 +0000 (12:36 +0000)]
Update test expectation.

test: 902
Change-Id: I0d9082a34a66c5f2aadec90eda0c5c2a0feef2e4

7 years agoMerge "Revert "Revert "Rename vdex-fd to output-vdex-fd, add input-vdex-fd."""
Nicolas Geoffray [Mon, 14 Nov 2016 09:24:56 +0000 (09:24 +0000)]
Merge "Revert "Revert "Rename vdex-fd to output-vdex-fd, add input-vdex-fd."""

7 years agoMerge "Revert "Revert "JIT root tables."""
Nicolas Geoffray [Mon, 14 Nov 2016 09:13:46 +0000 (09:13 +0000)]
Merge "Revert "Revert "JIT root tables."""

7 years agoMerge "Update 902 test to highlight JIT issue."
Nicolas Geoffray [Mon, 14 Nov 2016 09:12:59 +0000 (09:12 +0000)]
Merge "Update 902 test to highlight JIT issue."

7 years agoUpdate 902 test to highlight JIT issue.
Nicolas Geoffray [Fri, 11 Nov 2016 11:45:59 +0000 (11:45 +0000)]
Update 902 test to highlight JIT issue.

Test: 902-hello-transformation
bug: 32821077
Change-Id: Ic7d267a5e62d4e001d1b85f1cc3d10546814bd18

7 years agoMerge "ARM: VIXL32: Implement more codegen visitors."
Nicolas Geoffray [Sat, 12 Nov 2016 13:58:17 +0000 (13:58 +0000)]
Merge "ARM: VIXL32: Implement more codegen visitors."

7 years agoMerge "Add visiting for class loaders in StickyMarkSweep"
Treehugger Robot [Sat, 12 Nov 2016 06:48:17 +0000 (06:48 +0000)]
Merge "Add visiting for class loaders in StickyMarkSweep"

7 years agoMerge "ART: Fix alloc-dealloc mismatch"
Treehugger Robot [Sat, 12 Nov 2016 02:59:32 +0000 (02:59 +0000)]
Merge "ART: Fix alloc-dealloc mismatch"

7 years agoART: Fix alloc-dealloc mismatch
Andreas Gampe [Sat, 12 Nov 2016 01:11:25 +0000 (17:11 -0800)]
ART: Fix alloc-dealloc mismatch

Mark type as array.

Bug: 31098551
Test: m test-art-host
Change-Id: Ia27a997e838a408cc68f0d9fe58734155e709e85

7 years agoAdd visiting for class loaders in StickyMarkSweep
neo.chae [Mon, 7 Nov 2016 23:40:46 +0000 (08:40 +0900)]
Add visiting for class loaders in StickyMarkSweep

StickyMarkSweep clear the mark stack,
Because all reachable objects must be referenced by a root or a dirty card.
But, there are some marking hole for class object.

If some object is marked and the object and it's class object is not dirty,
Then class object cannot be marking by card table.

In previous OS including mashmellow,
Class table was maintaned by class linker
and all class object was marked with kVisitRootFlagAllRoots flag.

In N OS,
Class object is not marked with kVisitRootFlagAllRoots.
So, I added new flag to mark class object and using it StickyMarkSweep.

Added regression test in 141-class-unload.

Test: test-art-host

Change-Id: I57599e6db53b260f4c5ef466b63962141b8da5c3
Signed-off-by: Hyangseok Chae <neo.chae@lge.com>
7 years agoMerge "Fixed bug in LICM"
Treehugger Robot [Fri, 11 Nov 2016 19:18:23 +0000 (19:18 +0000)]
Merge "Fixed bug in LICM"

7 years agoMerge "Make empty checkpoint work while weak ref access is disabled."
Hiroshi Yamauchi [Fri, 11 Nov 2016 18:44:44 +0000 (18:44 +0000)]
Merge "Make empty checkpoint work while weak ref access is disabled."

7 years agoFixed bug in LICM
Aart Bik [Fri, 11 Nov 2016 02:21:30 +0000 (18:21 -0800)]
Fixed bug in LICM

Rationale:
We should stop hoisting anything that can throw
as soon as something else that can do something
visible (either throw or write something) is *not*
hoisted (used to be just throw test on second part).

Bug: 32810295
Test: test-art-host
Change-Id: Id88b712a5d9e37598d0bebbd4ecf4b1d8ee787b5

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 agoRevert "Revert "JIT root tables.""
Nicolas Geoffray [Thu, 10 Nov 2016 10:38:11 +0000 (10:38 +0000)]
Revert "Revert "JIT root tables.""

Also  contains Revert "Support kJitTableAddress in x86/arm/arm64."

This reverts commit 4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035.
This reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.

Test: ART_USE_READ_BARRIER=true/false test-art-host test-art-target

Change-Id: I77cb1e9bf8f1b4c58b72d3cf5ca31ced2aaa1ea3

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: Make test 030 slightly more robust
Andreas Gampe [Thu, 10 Nov 2016 22:09:05 +0000 (14:09 -0800)]
ART: Make test 030 slightly more robust

Run a serious of immediate GCs, synchronizer with the finalizer
starintg  and then let the main thread sleep for a minute, in an
effort to make the test deterministic and get the finalizer
daemon scheduled.

Test: m test-art-host-run-test-030-bad-finalizer
Change-Id: Id379d8147ecc8f6aa0a7d8d5058030a4c2d4de46

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 agoRevert "Revert "Rename vdex-fd to output-vdex-fd, add input-vdex-fd.""
Nicolas Geoffray [Thu, 10 Nov 2016 10:49:40 +0000 (10:49 +0000)]
Revert "Revert "Rename vdex-fd to output-vdex-fd, add input-vdex-fd.""

This reverts commit d4acdd380f79f41959663d2fa442186cb4a185a8.

Test: device boots, adb shell cmd package compile works.
Test: oat_file_assistant_test

bug:30937355
Change-Id: Iad2e66fd7f28ed9c1dc3cab344df7453aab4fa56

7 years agoARM: VIXL32: Implement more codegen visitors.
Artem Serov [Tue, 18 Oct 2016 18:11:30 +0000 (19:11 +0100)]
ARM: VIXL32: Implement more codegen visitors.

~50 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: I5b1a032f11e2c0fda2ea2c6a0f1b1a4b2668964a

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 agoMake empty checkpoint work while weak ref access is disabled.
Hiroshi Yamauchi [Thu, 3 Nov 2016 20:06:52 +0000 (13:06 -0700)]
Make empty checkpoint work while weak ref access is disabled.

Fix a potential race on PushOntoMarkStack for CC by running an empty
checkpoint (while weak ref access is disabled).

Bug: 32508093
Bug: 12687968
Test: test-art-host with CC/CMS, libartd boot with N9, Ritz EAAC.
Change-Id: I3749bb525e7734804307ee16262355f3fc730312

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