OSDN Git Service

android-x86/art.git
7 years agoMerge "Allow for testing alternative code generators in codegen_test.cc"
Roland Levillain [Tue, 13 Sep 2016 09:36:27 +0000 (09:36 +0000)]
Merge "Allow for testing alternative code generators in codegen_test.cc"

7 years agoMerge "Track libcore Executable.getParameter() changes"
Neil Fuller [Tue, 13 Sep 2016 09:02:35 +0000 (09:02 +0000)]
Merge "Track libcore Executable.getParameter() changes"

7 years agoMerge "Rename libicuuc-host/libicui18n-host to libicuuc/libicui18n"
Dan Willemsen [Tue, 13 Sep 2016 03:47:01 +0000 (03:47 +0000)]
Merge "Rename libicuuc-host/libicui18n-host to libicuuc/libicui18n"

7 years agoMerge "Add a debug check for unsaved callee-save register for diagnosis."
Treehugger Robot [Tue, 13 Sep 2016 03:17:46 +0000 (03:17 +0000)]
Merge "Add a debug check for unsaved callee-save register for diagnosis."

7 years agoMerge "ART: Remove libart from disassembler"
Treehugger Robot [Tue, 13 Sep 2016 02:26:49 +0000 (02:26 +0000)]
Merge "ART: Remove libart from disassembler"

7 years agoMerge "ART: Remove unnecessary file from vdex"
Andreas Gampe [Mon, 12 Sep 2016 23:45:53 +0000 (23:45 +0000)]
Merge "ART: Remove unnecessary file from vdex"

7 years agoART: Remove libart from disassembler
Andreas Gampe [Mon, 12 Sep 2016 23:22:43 +0000 (16:22 -0700)]
ART: Remove libart from disassembler

The disassembler now only requires the headers. Also remove liblog
dependency.

Bug: 15436106
Test: m test-art-host
Test: m test-art-host-gtest-oatdump_test
Test: m test-art-target-gtest-oatdump_test
Change-Id: Iecff5b7f8ffd81c89ea81a4de8bfab77b5c103a7

7 years agoART: Remove unnecessary file from vdex
Andreas Gampe [Mon, 12 Sep 2016 22:55:56 +0000 (15:55 -0700)]
ART: Remove unnecessary file from vdex

Don't store the file. The mem-map works without it.

Test: m
Test: m test-art-host
Test: device boots
Bug: 30937355
Bug: 31439377
Change-Id: Ie9579062c20ddd8dcfc612ccb614f0a0553d4fd9

7 years agoMerge "ART: Add generic system-weak holder infrastructure"
Andreas Gampe [Mon, 12 Sep 2016 23:18:38 +0000 (23:18 +0000)]
Merge "ART: Add generic system-weak holder infrastructure"

7 years agoMerge "Revert "Use implicit null checks inside try blocks.""
Nicolas Geoffray [Mon, 12 Sep 2016 22:07:09 +0000 (22:07 +0000)]
Merge "Revert "Use implicit null checks inside try blocks.""

7 years agoRevert "Use implicit null checks inside try blocks."
Nicolas Geoffray [Mon, 12 Sep 2016 22:05:33 +0000 (22:05 +0000)]
Revert "Use implicit null checks inside try blocks."

Fails gcstress tests.

This reverts commit 7aa7560683626c7893011271c241b3265ded1dc3.

Change-Id: I4f5c89048b9ffddbafa02f3001e329ff87058ca2

7 years agoRename libicuuc-host/libicui18n-host to libicuuc/libicui18n
Dan Willemsen [Mon, 12 Sep 2016 21:33:43 +0000 (14:33 -0700)]
Rename libicuuc-host/libicui18n-host to libicuuc/libicui18n

These modules can be named the same between the target and host
libraries, which simplifies references to them, particularly in
Soong.

To prevent accidentally loading the system copy of the library,
we still rename the installed name to be libicu*-host.so. But
modules do not need to know that in order to build against them.

Change-Id: Iede535d884a4b230ac511bae0d1687133f5801fe

7 years agoART: Add generic system-weak holder infrastructure
Andreas Gampe [Fri, 9 Sep 2016 03:29:18 +0000 (20:29 -0700)]
ART: Add generic system-weak holder infrastructure

Add an "interface" for a generic system-weak holder that is
integrated with the well-known instances in Runtime. Add a
simple implementation handling synchronization.

Add a test.

Bug: 31385027
Test: m test-art-host-gtest-system_weak_test
Test: m ART_USE_READ_BARRIER=true test-art-host-gtest-system_weak_test
Test: m ART_DEFAULT_GC_TYPE=SS test-art-host-gtest-system_weak_test
Test: m ART_DEFAULT_GC_TYPE=GSS test-art-host-gtest-system_weak_test
Change-Id: I1100e2cbd9ee57860993d0039de73d197681c542

7 years agoMerge "Remove custom CheckCast slow path caller saves for Baker CC."
Vladimir Marko [Mon, 12 Sep 2016 19:41:22 +0000 (19:41 +0000)]
Merge "Remove custom CheckCast slow path caller saves for Baker CC."

7 years agoAdd a debug check for unsaved callee-save register for diagnosis.
Hiroshi Yamauchi [Mon, 12 Sep 2016 19:10:08 +0000 (12:10 -0700)]
Add a debug check for unsaved callee-save register for diagnosis.

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

7 years agoMerge "Fix run-test after introduction of VDEX"
David Brazdil [Mon, 12 Sep 2016 17:59:03 +0000 (17:59 +0000)]
Merge "Fix run-test after introduction of VDEX"

7 years agoFix run-test after introduction of VDEX
David Brazdil [Mon, 12 Sep 2016 17:49:58 +0000 (18:49 +0100)]
Fix run-test after introduction of VDEX

Run-test 119-noimage-patchoat used to fail due to a codepath in
OatFile which allows to create an instance of the class from an
existing ElfFile instance. This patch updates the codepath to require
an existing VdexFile as well.

Test: art/test/run-test 119
Bug: 30937355
Change-Id: I8fd0e47f07921aaee999f73711766ada9c35d214

7 years agoRemove custom CheckCast slow path caller saves for Baker CC.
Vladimir Marko [Mon, 12 Sep 2016 17:11:28 +0000 (18:11 +0100)]
Remove custom CheckCast slow path caller saves for Baker CC.

For Baker CC, CheckCast has both a read-barrier marking slow
path and a pCheckCast slow path. When the latter is known to
leave the method, i.e. known to throw outside a try-block,
we do not need to save live registers for retrieval for the
exception delivery and since the read-barrier marking does
not need to save any registers either we were setting the
custom slow path caller saves to empty to avoid reserving
unnecessary spill space. Hovewer, this also leads to marking
live references in caller-save registers in the register
mask and while the read-barrier marking entrypoint doesn't
care, it causes a stack walk for the pCheckCast to try and
retrieve an unsaved register.

For the time being, revert to the default caller saves.

This is a partial revert of
    https://android-review.googlesource.com/254920

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

7 years agoMerge "Use implicit null checks inside try blocks."
Treehugger Robot [Mon, 12 Sep 2016 15:48:22 +0000 (15:48 +0000)]
Merge "Use implicit null checks inside try blocks."

7 years agoMerge "Try to avoid allocation when interning strings."
Vladimir Marko [Mon, 12 Sep 2016 15:03:45 +0000 (15:03 +0000)]
Merge "Try to avoid allocation when interning strings."

7 years agoMerge "Introduce VDEX file, use it for DEX files"
David Brazdil [Mon, 12 Sep 2016 14:57:19 +0000 (14:57 +0000)]
Merge "Introduce VDEX file, use it for DEX files"

7 years agoUse implicit null checks inside try blocks.
Vladimir Marko [Wed, 7 Sep 2016 14:09:21 +0000 (15:09 +0100)]
Use implicit null checks inside try blocks.

Make implicit null check entrypoint save all registers, use
platform-specific approach to still pass the fault address.
Allow implicit null checks in try blocks.

On Nexus 9, AOSP ToT, the boot.oat size reduction is
  prebuilt multi-part boot image:
    - 32-bit boot.oat: -452KiB (-0.7%)
    - 64-bit boot.oat: -482KiB (-0.7%)
  on-device built single boot image:
    - 32-bit boot.oat: -444KiB (-0.7%)
    - 64-bit boot.oat: -488KiB (-0.7%)

Test: Run ART test suite on host and Nexus 9.
Test: Build aosp_mips64-eng.
Change-Id: I279f3ab57e2e2f338131c5cac45c51b673bdca19

7 years agoIntroduce VDEX file, use it for DEX files
David Brazdil [Thu, 1 Sep 2016 10:06:18 +0000 (11:06 +0100)]
Introduce VDEX file, use it for DEX files

This patch introduces a new output file called VDEX. In the future,
VDEX files will store pre-validated DEX files which do not need to be
re-extracted and re-verified when recompiling, e.g. due to new
profiling information or after a system update.

With this CL, the OatWriter writes DEX files into the VDEX and the
rest of its output into OAT. The OatFile class and related classes
are updated to load the VDEX at runtime and mmap the DEX file section
from it. Patchoat creates symlinks to the source VDEX files in the
target directory or copies the files if passed in as file descriptors.

The feature can be disabled by setting the environment variable
ART_ENABLE_VDEX to false.

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

7 years agoMerge "Squashed commit of the following:"
Nicolas Geoffray [Mon, 12 Sep 2016 13:28:51 +0000 (13:28 +0000)]
Merge "Squashed commit of the following:"

7 years agoSquashed commit of the following:
Nicolas Geoffray [Mon, 12 Sep 2016 13:24:36 +0000 (14:24 +0100)]
Squashed commit of the following:

commit 487bc26b726a839b2e46424ee3779ac3bb2033f6
Author: Nicolas Geoffray <ngeoffray@google.com>
Date:   Mon Sep 12 14:24:12 2016 +0100

    Revert "Cleanup run-test and Makefile around boot image and PIC."

    This reverts commit 8c9ccac080e98fc5f33ba940a1216e9c2cc079db.

commit cefadb4b835390b508ae1d2b899f39f3769a593a
Author: Nicolas Geoffray <ngeoffray@google.com>
Date:   Mon Sep 12 14:23:47 2016 +0100

    Revert "Update test and dependencies after boot image changes."

    This reverts commit 2a1a8d7fa450a8196a63afb3bf647b2bec723497.

Change-Id: I58731d845c1166406039a9b74c833d72a82c88fb

7 years agoMerge "MIPS64: Sign-extend results in art_quick_get32_static/instance"
Treehugger Robot [Mon, 12 Sep 2016 11:37:04 +0000 (11:37 +0000)]
Merge "MIPS64: Sign-extend results in art_quick_get32_static/instance"

7 years agoMerge "Blacklist failing test after critical JNI changes."
Nicolas Geoffray [Mon, 12 Sep 2016 09:22:18 +0000 (09:22 +0000)]
Merge "Blacklist failing test after critical JNI changes."

7 years agoBlacklist failing test after critical JNI changes.
Nicolas Geoffray [Mon, 12 Sep 2016 09:21:08 +0000 (10:21 +0100)]
Blacklist failing test after critical JNI changes.

Change-Id: Ia525d12ba0a223ee3dfc4b095e0fe045271649cb

7 years agoMerge "Update test and dependencies after boot image changes."
Nicolas Geoffray [Mon, 12 Sep 2016 09:04:28 +0000 (09:04 +0000)]
Merge "Update test and dependencies after boot image changes."

7 years agoUpdate test and dependencies after boot image changes.
Nicolas Geoffray [Mon, 12 Sep 2016 08:53:53 +0000 (09:53 +0100)]
Update test and dependencies after boot image changes.

Change-Id: Ia7862e0f8b551c9a98bef8fbc350761c6d931f0c

7 years agoMerge "Re-enable boot image direct string loads for read barriers"
Treehugger Robot [Mon, 12 Sep 2016 08:37:09 +0000 (08:37 +0000)]
Merge "Re-enable boot image direct string loads for read barriers"

7 years agoMerge "MIPS32: Properly handle doubles in GetRegisterIfAccessible"
Nicolas Geoffray [Mon, 12 Sep 2016 08:19:21 +0000 (08:19 +0000)]
Merge "MIPS32: Properly handle doubles in GetRegisterIfAccessible"

7 years agoMerge "Cleanup run-test and Makefile around boot image and PIC."
Nicolas Geoffray [Mon, 12 Sep 2016 08:18:52 +0000 (08:18 +0000)]
Merge "Cleanup run-test and Makefile around boot image and PIC."

7 years agoMerge "Get libgtest from libart-gtest."
Nicolas Geoffray [Sat, 10 Sep 2016 08:28:15 +0000 (08:28 +0000)]
Merge "Get libgtest from libart-gtest."

7 years agoMerge "test: Disable 004-JniTest for nodex2oat and JIT config"
Treehugger Robot [Sat, 10 Sep 2016 00:16:33 +0000 (00:16 +0000)]
Merge "test: Disable 004-JniTest for nodex2oat and JIT config"

7 years agoMerge "Don't assume resolved classes are filled in for ResolvedFieldAccessTest"
Treehugger Robot [Fri, 9 Sep 2016 22:59:48 +0000 (22:59 +0000)]
Merge "Don't assume resolved classes are filled in for ResolvedFieldAccessTest"

7 years agoGet libgtest from libart-gtest.
Dan Albert [Fri, 9 Sep 2016 22:32:19 +0000 (15:32 -0700)]
Get libgtest from libart-gtest.

We can't link libgtest into both the tests and libart-gtest because
gtest has global data that causes ODR issues. Instead, link libgtest
*whole* into libart-gtest to be sure that we actually have enough to
gtest. Headers from LOCAL_WHOLE_STATIC_LIBRARIES are re-exported
automatically, which solves the initial problem I was here for.

Test: mma test-art-host-gtest
Bug: None
Change-Id: Icb985e070d8afb3e614b4e94714c61bc95e4e7fc

7 years agotest: Disable 004-JniTest for nodex2oat and JIT config
Igor Murashkin [Fri, 9 Sep 2016 22:04:27 +0000 (15:04 -0700)]
test: Disable 004-JniTest for nodex2oat and JIT config

These configs use generic jni, which is unsupported for @CriticalNative

Bug: 31400248
Change-Id: I77a2959e5657d6e0ed33e46e5179ad65342f30d5

7 years agoDon't assume resolved classes are filled in for ResolvedFieldAccessTest
Mathieu Chartier [Fri, 9 Sep 2016 00:34:25 +0000 (17:34 -0700)]
Don't assume resolved classes are filled in for ResolvedFieldAccessTest

The assumption that the dex cache type for class of the field is
resolved is not correct since FindClass does not fill in the
resolved type array. This resulted in crashes if dex_access_to ==
nullptr.

Also implemented for ResolvedMethodAccessTest

Bug: 31277064

Test: test-art-host CC baker, launch ZeroTouch with PGO.

(cherry picked from commit c90450a201707111e33d6b6f37d431b201849a8b)

Change-Id: Id5e71ea0eced1b631a3bd7d297229a66cb190954

7 years agoMerge "64bits codegens need to drag their 32bits equivalent."
Nicolas Geoffray [Fri, 9 Sep 2016 20:38:51 +0000 (20:38 +0000)]
Merge "64bits codegens need to drag their 32bits equivalent."

7 years agoRe-enable boot image direct string loads for read barriers
Mathieu Chartier [Fri, 9 Sep 2016 19:49:55 +0000 (12:49 -0700)]
Re-enable boot image direct string loads for read barriers

Boot.oat code size with CC baker:
ARM32: 70775656 -> 69817028 (-1.35%)
ARM64: 80819424 -> 79417072 (-1.74%)
X86 unmeasured.
X86_64 unmeasured.

Performance unmeasured, should be faster.

Bug: 29516974

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

Change-Id: I219faaca9ed17af81d2815fb5e124120f307af83

7 years agoMerge "Include oatdump/Android.mk"
Treehugger Robot [Fri, 9 Sep 2016 20:03:14 +0000 (20:03 +0000)]
Merge "Include oatdump/Android.mk"

7 years agoMerge "Fix vtable corruption issue"
Alex Light [Fri, 9 Sep 2016 19:41:11 +0000 (19:41 +0000)]
Merge "Fix vtable corruption issue"

7 years agoMerge "jni: Add @CriticalNative optimization to speed up JNI transitions"
Igor Murashkin [Fri, 9 Sep 2016 19:33:51 +0000 (19:33 +0000)]
Merge "jni: Add @CriticalNative optimization to speed up JNI transitions"

7 years agoInclude oatdump/Android.mk
Colin Cross [Fri, 9 Sep 2016 18:19:32 +0000 (11:19 -0700)]
Include oatdump/Android.mk

oatdump/Android.mk wasn't removed as part of the Android.bp conversion,
as it still contains custom targets like dump-oat-boot.  Add it back to
the subdirs included by art/Android.mk.  Also put back the
ART_DUMP_OAT_PATH variable used by the dump-oat-* targets.

Change-Id: If7086b48e268e3620a3377d0f37442673699ec26

7 years agoMerge "Stop manually including gtest headers."
Treehugger Robot [Fri, 9 Sep 2016 18:22:34 +0000 (18:22 +0000)]
Merge "Stop manually including gtest headers."

7 years agoMerge "ART: Generate path to entrypoints in VisitLoadString for x86_64"
Treehugger Robot [Fri, 9 Sep 2016 18:18:33 +0000 (18:18 +0000)]
Merge "ART: Generate path to entrypoints in VisitLoadString for x86_64"

7 years agojni: Add @CriticalNative optimization to speed up JNI transitions
Igor Murashkin [Fri, 2 Sep 2016 00:00:24 +0000 (17:00 -0700)]
jni: Add @CriticalNative optimization to speed up JNI transitions

Change-Id: I963059ac3a72dd8e6a867596c356d7062deb6da7

7 years agoFix vtable corruption issue
Alex Light [Wed, 7 Sep 2016 19:04:20 +0000 (12:04 -0700)]
Fix vtable corruption issue

We were adding duplicate methods to the vtable in some cases where
default methods (and conflict methods) were used. This caused issues
where they were not correctly overridden in subclasses that implement
these methods directly. When overridden only one of the vtable entries
was updated meaning it was still possible to reach the overridden code
using a virtual call.

This change prevents the duplicate methods from being added to the
vtable in this circumstance. It also adds a debug check that ensures
that the vtable has no duplicates to prevent regressions.

Bug: 31280371

Test: mma test-art-host
Test: mma test-art-host-run-test-960-default-smali

Change-Id: I17d88fb8949c8d5d75b4de3c734fd98660b81e61

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

Instead of generating assembly to jump into the entrypoints with the
slow paths, generate in VisitLoadString, since we do this almost every
time right now.

Tests: test-art-host with CC baker

Change-Id: I91040b2549b88f4ddee20486836177364907f9f4

7 years agoMerge "ART: Generate path to entrypoints in VisitLoadString for x86"
Mathieu Chartier [Fri, 9 Sep 2016 16:39:44 +0000 (16:39 +0000)]
Merge "ART: Generate path to entrypoints in VisitLoadString for x86"

7 years agoMIPS64: Sign-extend results in art_quick_get32_static/instance
Goran Jakovljevic [Fri, 9 Sep 2016 15:53:01 +0000 (17:53 +0200)]
MIPS64: Sign-extend results in art_quick_get32_static/instance

Return types of artGet32StaticFromCode and artGet32InstanceFromCode
are unsigned (size_t). On the other hand, managed code expects signed
32-bit values. This is problematic on MIPS64 which expects that all
integer type variables are properly sign-extended in registers.

This fixes test 529-checker-unresolved.

Test: mma -j2 test-art-target in QEMU
Change-Id: I70f53ded9bfa1cfd53bcc639fb4841192ee71b2b

7 years ago64bits codegens need to drag their 32bits equivalent.
Nicolas Geoffray [Fri, 9 Sep 2016 14:48:19 +0000 (15:48 +0100)]
64bits codegens need to drag their 32bits equivalent.

This to restore the previous (non-soong) build behavior.

Change-Id: Ie93c18db5522b889a44106cbb25c2a87f9e4a882

7 years agoMerge "ARM64: Use macros for increasing and decreasing frame size."
Treehugger Robot [Fri, 9 Sep 2016 14:24:00 +0000 (14:24 +0000)]
Merge "ARM64: Use macros for increasing and decreasing frame size."

7 years agoMerge "Remove unnecessary `static` specifiers in `common_arm64.h`."
Treehugger Robot [Fri, 9 Sep 2016 14:03:53 +0000 (14:03 +0000)]
Merge "Remove unnecessary `static` specifiers in `common_arm64.h`."

7 years agoCleanup run-test and Makefile around boot image and PIC.
Nicolas Geoffray [Wed, 7 Sep 2016 15:02:15 +0000 (16:02 +0100)]
Cleanup run-test and Makefile around boot image and PIC.

- JIT boot image is interpret-only
- Default is PIC image
- "Default" compiler is gone.

test: m -j32 test-art-host-run-test (with different macro variants)

Change-Id: I547f4579fa08bbcb634b256125ca45d832dc1d6b

7 years agoMerge "MIPS32: Implement branchless HCondition for floats"
Treehugger Robot [Fri, 9 Sep 2016 11:35:09 +0000 (11:35 +0000)]
Merge "MIPS32: Implement branchless HCondition for floats"

7 years agoARM64: Use macros for increasing and decreasing frame size.
Vladimir Marko [Fri, 9 Sep 2016 10:56:05 +0000 (11:56 +0100)]
ARM64: Use macros for increasing and decreasing frame size.

And fix saving/restoring CFI around returns.

Test: m test-art-target on Nexus9.
Change-Id: Iad94ca694ac899adec158ae79a931316a0be46f1

7 years agoMIPS32: Properly handle doubles in GetRegisterIfAccessible
Goran Jakovljevic [Thu, 10 Dec 2015 10:44:50 +0000 (11:44 +0100)]
MIPS32: Properly handle doubles in GetRegisterIfAccessible

There was a problem with floating point registers and exception
handler. In optimizing compiler fpu registers are treated as 64-bit.
This is problematic since logic in GetRegisterIfAccessible doesn't
support 64-bit floating point registers.

This fixes tests:
    510-checker-try-catch
    534-checker-bce-deoptimization

Test: mma test-art-target on CI20 (mips32r2) and emulator (mips32r6)

Change-Id: I0f49c1c30f97077b82ad08fcc3cdb86a4877af23

7 years agoMerge "Revert "Revert "Re-enable boot image string sharpening."""
Treehugger Robot [Fri, 9 Sep 2016 10:43:12 +0000 (10:43 +0000)]
Merge "Revert "Revert "Re-enable boot image string sharpening."""

7 years agoMIPS32: Implement branchless HCondition for floats
Alexey Frunze [Wed, 7 Sep 2016 00:04:55 +0000 (17:04 -0700)]
MIPS32: Implement branchless HCondition for floats

Test: booted MIPS32R2 in QEMU
Test: test-art-target-run-test-optimizing (MIPS32R2) on CI20
Test: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU
Test: test-art-target-run-test-optimizing (MIPS32R6) in QEMU

Change-Id: Iec2f301c33bf9b9a2e16759633f8489a3e0bc46b

7 years agoRevert "Revert "Re-enable boot image string sharpening.""
Vladimir Marko [Fri, 9 Sep 2016 09:16:31 +0000 (09:16 +0000)]
Revert "Revert "Re-enable boot image string sharpening.""

The reason for the revert was a transaction bug fixed by
    https://android-review.googlesource.com/271008

Bug: 20323084
Bug: 31239436

This reverts commit f508c565b13585a766719b87a00e3c2a4200abe0.

Change-Id: I2f5995b55ccbf58b888db3f0ab64d6186e400a92

7 years agoStop manually including gtest headers.
Dan Albert [Fri, 9 Sep 2016 06:01:12 +0000 (23:01 -0700)]
Stop manually including gtest headers.

libgtest exports these.

Test: mm
Bug: http://b/16574165
Change-Id: I4f6220c6d3fe67f4a21451d2f7e790705519d935

7 years agoMerge "Make bisection search and javafuzz python modules"
Treehugger Robot [Fri, 9 Sep 2016 03:37:55 +0000 (03:37 +0000)]
Merge "Make bisection search and javafuzz python modules"

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

Code size unmeasured, presumably ~-1%.

Generate code to go into string dex cache entrypoints in VisitLoadString
instead of with slow paths, since we now go into entrypoints almost
every time.

Change-Id: Ic4335a23934547737dbda12111f672da1e6c0ef7
Tests: test-art-host CC baker

7 years agoMerge "Fix mac build"
Treehugger Robot [Fri, 9 Sep 2016 01:31:40 +0000 (01:31 +0000)]
Merge "Fix mac build"

7 years agoFix mac build
Colin Cross [Thu, 8 Sep 2016 23:43:27 +0000 (16:43 -0700)]
Fix mac build

oatdumps used to only be built when ART_BUILD_HOST_STATIC was set,
which was never set on macs, disable oatdumps and oatdumpds on macs.

Change-Id: I93a770cfa6a92ba7ed47a1501962ea9ddb25eba5

7 years agoMerge "Fix mac build"
Treehugger Robot [Thu, 8 Sep 2016 22:53:48 +0000 (22:53 +0000)]
Merge "Fix mac build"

7 years agoMerge "Adding x86 compiler utils instructions and tests"
Aart Bik [Thu, 8 Sep 2016 21:30:43 +0000 (21:30 +0000)]
Merge "Adding x86 compiler utils instructions and tests"

7 years agoFix mac build
Colin Cross [Thu, 8 Sep 2016 21:19:51 +0000 (14:19 -0700)]
Fix mac build

-lrt doesn't exist on the mac

Change-Id: I5f9c62bc2338a09141d2e1baa29ff6a68eb2c6b2

7 years agoMake bisection search and javafuzz python modules
Wojciech Staszkiewicz [Tue, 6 Sep 2016 17:55:38 +0000 (10:55 -0700)]
Make bisection search and javafuzz python modules

Adds __init__.py files required for bisection search and javafuzz
to be considered modules.

Renames bisection-search directory to bisection_search. This is
required because bisection-search is not a valid python module
name.

Test: manual

Change-Id: If85ac5392b10184add17816eab2294b260f72452

7 years agoMerge "Convert more of art to Android.bp"
Treehugger Robot [Thu, 8 Sep 2016 20:48:32 +0000 (20:48 +0000)]
Merge "Convert more of art to Android.bp"

7 years agoMerge "Add transactions for string resolve"
Treehugger Robot [Thu, 8 Sep 2016 20:07:41 +0000 (20:07 +0000)]
Merge "Add transactions for string resolve"

7 years agoAdd transactions for string resolve
Mathieu Chartier [Wed, 7 Sep 2016 17:17:46 +0000 (10:17 -0700)]
Add transactions for string resolve

Fixes a bug where resolved strings can be left in the dex cache after
a transaction is rolled back even though the interned string was
removed.

Added test in transaction_test.

Bug: 31239436

Test: test-art-host

Change-Id: I42c67bcefeae8db134cde34c480261f52db4102e

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 agoAdding x86 compiler utils instructions and tests
jessicahandojo [Wed, 7 Sep 2016 19:16:53 +0000 (12:16 -0700)]
Adding x86 compiler utils instructions and tests

Instructions added are (repne scasb), (repne movb),
and (repne cmpsb) for x86.
Instructions added is (repne scasb) for x86_64.

Test: m -j31 test-art-host-gtest-assembler_x86_test
      m -j31 test-art-host-gtest-assembler_x86_64_test

Change-Id: I137bf5fe1174b1dcc0166f7f2e0cffadbc0ca7f5

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 agoAllow for testing alternative code generators in codegen_test.cc
Scott Wakeling [Wed, 31 Aug 2016 08:48:54 +0000 (09:48 +0100)]
Allow for testing alternative code generators in codegen_test.cc

This will be used in a later patch to test a new VIXL32-based backend
in parallel with the existing code_generator_arm.

Test: gtest-codegen_test on host and target

Change-Id: I0316da0430fa6da0a7c668315f531888d18e7eb3