OSDN Git Service

android-x86/art.git
7 years agoFix a deadlock in the CC collector.
Hiroshi Yamauchi [Thu, 15 Sep 2016 02:31:25 +0000 (19:31 -0700)]
Fix a deadlock in the CC collector.

Fix a deadlock between CC GC disabling system weaks and thread attach.

See 31500969#2 for more details.

Bug: 31500969
Bug: 12687968
Test: test-art-host with CC. N9 libartd boot. Ritz EAAC.
Change-Id: Ic9a8bfb1c636643a03f4580b811fe890273576b6

7 years agoMerge "Make ScopedAssertNoThreadSuspension no overhead for non-debug"
Mathieu Chartier [Wed, 14 Sep 2016 16:55:56 +0000 (16:55 +0000)]
Merge "Make ScopedAssertNoThreadSuspension no overhead for non-debug"

7 years agoMerge "Update art to use hooks instead of customizer"
Colin Cross [Wed, 14 Sep 2016 16:50:18 +0000 (16:50 +0000)]
Merge "Update art to use hooks instead of customizer"

7 years agoMerge "ARM/ARM64: Fix throwing entrypoints to call runtime handlers."
Treehugger Robot [Wed, 14 Sep 2016 16:36:35 +0000 (16:36 +0000)]
Merge "ARM/ARM64: Fix throwing entrypoints to call runtime handlers."

7 years agoMerge "Separate annotations from dexfile reading."
Aart Bik [Wed, 14 Sep 2016 15:55:07 +0000 (15:55 +0000)]
Merge "Separate annotations from dexfile reading."

7 years agoSeparate annotations from dexfile reading.
David Sehr [Tue, 13 Sep 2016 15:58:35 +0000 (08:58 -0700)]
Separate annotations from dexfile reading.

Bug: 22322814
Change-Id: I867d66da407dd80394a10d19903ebbc1ec3986ff
Test: test-art

7 years agoMerge "MIPS32: Implement table-based packed switch"
Treehugger Robot [Wed, 14 Sep 2016 15:01:23 +0000 (15:01 +0000)]
Merge "MIPS32: Implement table-based packed switch"

7 years agoARM/ARM64: Fix throwing entrypoints to call runtime handlers.
Vladimir Marko [Wed, 14 Sep 2016 09:29:18 +0000 (10:29 +0100)]
ARM/ARM64: Fix throwing entrypoints to call runtime handlers.

Test: Run ART test suite including gcstress on Nexus 9.
Bug: 31468464
Change-Id: I2521675125d243be3168a2e87b70185791322b42

7 years agoMerge "Remove ThrowNoSuchMethod entrypoint."
Treehugger Robot [Wed, 14 Sep 2016 13:42:12 +0000 (13:42 +0000)]
Merge "Remove ThrowNoSuchMethod entrypoint."

7 years agoRemove ThrowNoSuchMethod entrypoint.
Vladimir Marko [Wed, 14 Sep 2016 11:49:57 +0000 (12:49 +0100)]
Remove ThrowNoSuchMethod entrypoint.

Run ART test suite on host and Nexus 6.
Bug: 31464666
Change-Id: I5aa737726031adae0b132f759cf802a93d581a7f

7 years agoMerge "Revert "Revert "Use implicit null checks inside try blocks."""
Treehugger Robot [Wed, 14 Sep 2016 11:16:24 +0000 (11:16 +0000)]
Merge "Revert "Revert "Use implicit null checks inside try blocks."""

7 years agoRevert "Revert "Use implicit null checks inside try blocks.""
Vladimir Marko [Tue, 13 Sep 2016 11:56:01 +0000 (11:56 +0000)]
Revert "Revert "Use implicit null checks inside try blocks.""

Fix implicit checks in try blocks to emit stack maps.
Fix arm64 null expection from signal entrypoint to call
the runtime handler instead or simply jumping there.

On Nexus 9, AOSP ToT, the boot.oat size reduction is
  prebuilt multi-part boot image:
    - 32-bit boot.oat: -448KiB (-1.3%)
    - 64-bit boot.oat: -528KiB (-1.2%)
  on-device built single boot image:
    - 32-bit boot.oat: -448KiB (-1.4%)
    - 64-bit boot.oat: -528KiB (-1.3%)
Note that the oat files no longer contain dex files which
have been moved to vdex, so the percentages are not directly
comparable with the those reported in the original commit.

Test: Run ART test suite including gc-stress on host and Nexus 9.
Bug: 30212852
Bug: 31468464

This reverts commit 0719b5b9b458cb3eb9f0823f0dacdfe1a71214dd.

Change-Id: If8a9da8c11adf2aad203e93b6684ce16ed776285

7 years agoMerge "Make dex2oat art_cc_binary instead of just cc_binary."
Nicolas Geoffray [Wed, 14 Sep 2016 09:30:53 +0000 (09:30 +0000)]
Merge "Make dex2oat art_cc_binary instead of just cc_binary."

7 years agoMake dex2oat art_cc_binary instead of just cc_binary.
Nicolas Geoffray [Wed, 14 Sep 2016 09:26:56 +0000 (10:26 +0100)]
Make dex2oat art_cc_binary instead of just cc_binary.

This to get customized properties like CUSTOM_TARGET_LINKER.

Change-Id: Ifa25c52faa40fa6da40b614f664ab24ac1b7356a

7 years agoMIPS32: Implement table-based packed switch
Alexey Frunze [Sat, 10 Sep 2016 09:32:44 +0000 (02:32 -0700)]
MIPS32: Implement table-based packed switch

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
Test: test-art-host-gtest

Change-Id: I2e1a65ff1ba9406b84351ba7998f853b1ce4aef9

7 years agoMerge "Fix mac build"
Treehugger Robot [Wed, 14 Sep 2016 01:57:44 +0000 (01:57 +0000)]
Merge "Fix mac build"

7 years agoMerge "Add test dependency on dexlist"
Treehugger Robot [Wed, 14 Sep 2016 01:55:12 +0000 (01:55 +0000)]
Merge "Add test dependency on dexlist"

7 years agoAdd test dependency on dexlist
Colin Cross [Tue, 13 Sep 2016 23:47:02 +0000 (16:47 -0700)]
Add test dependency on dexlist

dexlist_test depends on dexlist, add a new list of non-debuggable
executables for tests to depend on.

Bug: 31469510
Change-Id: I3e8f5798be523753ed8eda6cbbabe3251436877f

7 years agoFix mac build
Colin Cross [Tue, 13 Sep 2016 23:55:55 +0000 (16:55 -0700)]
Fix mac build

-z muldefs doesn't exist on mac.  It is only necessary for dex2oats,
which doesn't build on mac, move it from the defaults to the dex2oats
targets.

Change-Id: I47f35d159fc0602f54412e12ef44798ca4afa4de

7 years agoMerge "Fix mac build"
Treehugger Robot [Tue, 13 Sep 2016 22:44:00 +0000 (22:44 +0000)]
Merge "Fix mac build"

7 years agoMake ScopedAssertNoThreadSuspension no overhead for non-debug
Mathieu Chartier [Tue, 13 Sep 2016 19:09:38 +0000 (12:09 -0700)]
Make ScopedAssertNoThreadSuspension no overhead for non-debug

Previously it required Thread::Current() which may not be free.
The plan is to add a lot more ScopedAssertNoThreadSuspension in
the codebase.

Also cleaned up callers.

Bug: 31458474
Change-Id: I5a1621a5435476504d22266cc01a9bf26aab7568

7 years agoMerge "String Compression (interpreter only) bug fix"
Treehugger Robot [Tue, 13 Sep 2016 22:14:24 +0000 (22:14 +0000)]
Merge "String Compression (interpreter only) bug fix"

7 years agoMerge "Revert "Re-apply "Cleanup run-test and Makefile around boot image and PIC."""
Treehugger Robot [Tue, 13 Sep 2016 21:20:21 +0000 (21:20 +0000)]
Merge "Revert "Re-apply "Cleanup run-test and Makefile around boot image and PIC."""

7 years agoFix mac build
Colin Cross [Tue, 13 Sep 2016 21:07:00 +0000 (14:07 -0700)]
Fix mac build

Change-Id: Ic3e74f96645384c0cec3aa5156f4ead8912f3be2

7 years agoUpdate art to use hooks instead of customizer
Colin Cross [Tue, 13 Sep 2016 20:41:03 +0000 (13:41 -0700)]
Update art to use hooks instead of customizer

Change-Id: I46de5ea6ffbc0e32a0b306b8fe82b66b986e33cd

7 years agoMerge "Convert more of art to Android.bp"
Colin Cross [Tue, 13 Sep 2016 20:40:05 +0000 (20:40 +0000)]
Merge "Convert more of art to Android.bp"

7 years agoMerge "Add more logging for checking in to-space for CC copy"
Treehugger Robot [Tue, 13 Sep 2016 19:54:55 +0000 (19:54 +0000)]
Merge "Add more logging for checking in to-space for CC copy"

7 years agoRevert "Re-apply "Cleanup run-test and Makefile around boot image and PIC.""
Hiroshi Yamauchi [Tue, 13 Sep 2016 19:37:22 +0000 (19:37 +0000)]
Revert "Re-apply "Cleanup run-test and Makefile around boot image and PIC.""

This reverts commit 9b5515ebb4502119c44e898b05c69312a45c5f49.

Breaks some gtests.

Change-Id: Ic9c9061b05219f19d5c7713ce0239e60c9d6e287

7 years agoAdd more logging for checking in to-space for CC copy
Mathieu Chartier [Tue, 13 Sep 2016 17:02:48 +0000 (10:02 -0700)]
Add more logging for checking in to-space for CC copy

Trying to debug occasionally failing CHECK.

Bug: 31423258

Test: test-art-host CC baker

Change-Id: I00963eb4f529811090e485184bb48a28287e77d3

7 years agoMerge "ART: Rearrange some JVMTI headers"
Treehugger Robot [Tue, 13 Sep 2016 17:59:55 +0000 (17:59 +0000)]
Merge "ART: Rearrange some JVMTI headers"

7 years agoART: Rearrange some JVMTI headers
Andreas Gampe [Tue, 13 Sep 2016 16:05:59 +0000 (09:05 -0700)]
ART: Rearrange some JVMTI headers

Move around pieces to prepare for multiple cc files.

Bug: 31455788
Test: m test-art-host
Change-Id: I4e2dfccbca3b51c72ad8b1f1857d8eebc1ec43a2

7 years agoMerge "Re-apply "Cleanup run-test and Makefile around boot image and PIC.""
Treehugger Robot [Tue, 13 Sep 2016 15:36:26 +0000 (15:36 +0000)]
Merge "Re-apply "Cleanup run-test and Makefile around boot image and PIC.""

7 years agoMerge "ART: Remove LogSeverity NONE"
Treehugger Robot [Tue, 13 Sep 2016 15:30:49 +0000 (15:30 +0000)]
Merge "ART: Remove LogSeverity NONE"

7 years agoRe-apply "Cleanup run-test and Makefile around boot image and PIC."
Nicolas Geoffray [Mon, 12 Sep 2016 15:08:02 +0000 (16:08 +0100)]
Re-apply "Cleanup run-test and Makefile around boot image and PIC."

This reverts commit 1ba223b2e6dab206b02613bc8b523553477fc4a0.

Change-Id: I0048afcefc5b654b62ddaf3c0d45ab201e4d3027

7 years agoMerge "New workaround for chromium buildbot."
Nicolas Geoffray [Tue, 13 Sep 2016 13:13:45 +0000 (13:13 +0000)]
Merge "New workaround for chromium buildbot."

7 years agoNew workaround for chromium buildbot.
Nicolas Geoffray [Tue, 13 Sep 2016 13:08:31 +0000 (14:08 +0100)]
New workaround for chromium buildbot.

Turns out once repo is init, doing a repo init/sync with another
repo version has no effect.

So instead just do the Android specific instructions
that the chromium repo seems to not do.

Change-Id: I0c42c4c2d61af54760a505a63554434f65c381c1

7 years agoMerge "Workaround for repo incompatibilities on buildbot."
Nicolas Geoffray [Tue, 13 Sep 2016 12:53:18 +0000 (12:53 +0000)]
Merge "Workaround for repo incompatibilities on buildbot."

7 years agoWorkaround for repo incompatibilities on buildbot.
Nicolas Geoffray [Tue, 13 Sep 2016 12:36:32 +0000 (13:36 +0100)]
Workaround for repo incompatibilities on buildbot.

Change-Id: Icd195f423e2e495d19ba35ed1d097e0f7d0a18ba

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 agoART: Remove LogSeverity NONE
Andreas Gampe [Tue, 13 Sep 2016 03:22:19 +0000 (20:22 -0700)]
ART: Remove LogSeverity NONE

Remove non-standard severity, and instead use a new enum to
configure verifier logging.

Partially reverts commit 7fe30233d32a872f5349e921dba65bd767ad994b.

Bug: 31338270
Test: m test-art-host
Change-Id: If52ee23c4902fbf2dabe7b232f6742448764ff8c

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 agoConvert more of art to Android.bp
Colin Cross [Thu, 8 Sep 2016 19:52:18 +0000 (12:52 -0700)]
Convert more of art to Android.bp

Convert dex2oat, imgdiag, patchoat, and profman to Android.bp.

Test: m -j test-art-host
Test: mmma -j art
Change-Id: If2acd47189e5a944732c2c00c2bf31265f887161

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 agoString Compression (interpreter only) bug fix
jessicahandojo [Sat, 10 Sep 2016 02:05:34 +0000 (19:05 -0700)]
String Compression (interpreter only) bug fix

String with length 0 considered to be compressible,
so the length should be -2147483648 or -(1 << 31).

Change-Id: Ie71f17a0e66efe9a65a8a76d4cee776db636550f

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