OSDN Git Service
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
Andreas Gampe [Mon, 12 Sep 2016 23:18:38 +0000 (23:18 +0000)]
Merge "ART: Add generic system-weak holder infrastructure"
Nicolas Geoffray [Mon, 12 Sep 2016 22:07:09 +0000 (22:07 +0000)]
Merge "Revert "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
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
Vladimir Marko [Mon, 12 Sep 2016 19:41:22 +0000 (19:41 +0000)]
Merge "Remove custom CheckCast slow path caller saves for Baker CC."
David Brazdil [Mon, 12 Sep 2016 17:59:03 +0000 (17:59 +0000)]
Merge "Fix 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
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
Treehugger Robot [Mon, 12 Sep 2016 15:48:22 +0000 (15:48 +0000)]
Merge "Use implicit null checks inside try blocks."
Vladimir Marko [Mon, 12 Sep 2016 15:03:45 +0000 (15:03 +0000)]
Merge "Try to avoid allocation when interning strings."
David Brazdil [Mon, 12 Sep 2016 14:57:19 +0000 (14:57 +0000)]
Merge "Introduce VDEX file, use it for DEX files"
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
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
Nicolas Geoffray [Mon, 12 Sep 2016 13:28:51 +0000 (13:28 +0000)]
Merge "Squashed 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
Treehugger Robot [Mon, 12 Sep 2016 11:37:04 +0000 (11:37 +0000)]
Merge "MIPS64: Sign-extend results in art_quick_get32_static/instance"
Nicolas Geoffray [Mon, 12 Sep 2016 09:22:18 +0000 (09:22 +0000)]
Merge "Blacklist 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
Nicolas Geoffray [Mon, 12 Sep 2016 09:04:28 +0000 (09:04 +0000)]
Merge "Update 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
Treehugger Robot [Mon, 12 Sep 2016 08:37:09 +0000 (08:37 +0000)]
Merge "Re-enable boot image direct string loads for read barriers"
Nicolas Geoffray [Mon, 12 Sep 2016 08:19:21 +0000 (08:19 +0000)]
Merge "MIPS32: Properly handle doubles in GetRegisterIfAccessible"
Nicolas Geoffray [Mon, 12 Sep 2016 08:18:52 +0000 (08:18 +0000)]
Merge "Cleanup run-test and Makefile around boot image and PIC."
Nicolas Geoffray [Sat, 10 Sep 2016 08:28:15 +0000 (08:28 +0000)]
Merge "Get libgtest from libart-gtest."
Treehugger Robot [Sat, 10 Sep 2016 00:16:33 +0000 (00:16 +0000)]
Merge "test: Disable 004-JniTest for nodex2oat and JIT config"
Treehugger Robot [Fri, 9 Sep 2016 22:59:48 +0000 (22:59 +0000)]
Merge "Don't assume resolved classes are filled in for ResolvedFieldAccessTest"
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
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
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
Nicolas Geoffray [Fri, 9 Sep 2016 20:38:51 +0000 (20:38 +0000)]
Merge "64bits codegens need to drag their 32bits equivalent."
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
Treehugger Robot [Fri, 9 Sep 2016 20:03:14 +0000 (20:03 +0000)]
Merge "Include oatdump/Android.mk"
Alex Light [Fri, 9 Sep 2016 19:41:11 +0000 (19:41 +0000)]
Merge "Fix vtable corruption issue"
Igor Murashkin [Fri, 9 Sep 2016 19:33:51 +0000 (19:33 +0000)]
Merge "jni: Add @CriticalNative optimization to speed up JNI transitions"
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
Treehugger Robot [Fri, 9 Sep 2016 18:22:34 +0000 (18:22 +0000)]
Merge "Stop manually including gtest headers."
Treehugger Robot [Fri, 9 Sep 2016 18:18:33 +0000 (18:18 +0000)]
Merge "ART: Generate path to entrypoints in VisitLoadString for x86_64"
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
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
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
Mathieu Chartier [Fri, 9 Sep 2016 16:39:44 +0000 (16:39 +0000)]
Merge "ART: Generate path to entrypoints in VisitLoadString for x86"
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
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
Treehugger Robot [Fri, 9 Sep 2016 14:24:00 +0000 (14:24 +0000)]
Merge "ARM64: Use macros for increasing and decreasing frame size."
Treehugger Robot [Fri, 9 Sep 2016 14:03:53 +0000 (14:03 +0000)]
Merge "Remove unnecessary `static` specifiers in `common_arm64.h`."
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
Treehugger Robot [Fri, 9 Sep 2016 11:35:09 +0000 (11:35 +0000)]
Merge "MIPS32: Implement branchless HCondition for floats"
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
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
Treehugger Robot [Fri, 9 Sep 2016 10:43:12 +0000 (10:43 +0000)]
Merge "Revert "Revert "Re-enable boot image string sharpening."""
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
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
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
Treehugger Robot [Fri, 9 Sep 2016 03:37:55 +0000 (03:37 +0000)]
Merge "Make bisection search and javafuzz python modules"
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
Treehugger Robot [Fri, 9 Sep 2016 01:31:40 +0000 (01:31 +0000)]
Merge "Fix 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
Treehugger Robot [Thu, 8 Sep 2016 22:53:48 +0000 (22:53 +0000)]
Merge "Fix mac build"
Aart Bik [Thu, 8 Sep 2016 21:30:43 +0000 (21:30 +0000)]
Merge "Adding x86 compiler utils instructions and tests"
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
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
Treehugger Robot [Thu, 8 Sep 2016 20:48:32 +0000 (20:48 +0000)]
Merge "Convert more of art to Android.bp"
Treehugger Robot [Thu, 8 Sep 2016 20:07:41 +0000 (20:07 +0000)]
Merge "Add 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
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
Andreas Gampe [Thu, 8 Sep 2016 17:43:29 +0000 (17:43 +0000)]
Merge "ART: Detach libart-disassembler from libart"
Treehugger Robot [Thu, 8 Sep 2016 17:27:45 +0000 (17:27 +0000)]
Merge "Clean up the 538-checker-embed-constants test"
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
Mathieu Chartier [Thu, 8 Sep 2016 17:04:04 +0000 (17:04 +0000)]
Merge "ART: Generate path to entrypoints in VisitLoadString for arm64"
Roland Levillain [Thu, 8 Sep 2016 16:08:34 +0000 (16:08 +0000)]
Merge "Do type checks in ArraySet without read barriers."
Anton Kirilov [Wed, 7 Sep 2016 13:45:23 +0000 (14:45 +0100)]
Clean up the 538-checker-embed-constants test
Change-Id: Ib7f11fc5d695c8c53fec55573e11bc87313c1065
Bill Buzbee [Thu, 8 Sep 2016 14:14:26 +0000 (14:14 +0000)]
Merge "ART: Remove computed-goto interpreter"
Treehugger Robot [Thu, 8 Sep 2016 13:06:38 +0000 (13:06 +0000)]
Merge "ARM64: 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
David Sehr [Thu, 8 Sep 2016 00:39:03 +0000 (00:39 +0000)]
Merge "Fix some memory leaks found by valgrind."
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
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)
Treehugger Robot [Wed, 7 Sep 2016 22:54:12 +0000 (22:54 +0000)]
Merge "ART: Generate path to entrypoints in VisitLoadString for arm"
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
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
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
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
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
Mathieu Chartier [Wed, 7 Sep 2016 21:10:34 +0000 (21:10 +0000)]
Merge "Avoid read barrier for image HLoadClass"
Aart Bik [Wed, 7 Sep 2016 18:14:06 +0000 (18:14 +0000)]
Merge "Prepare bisection search for runtest integration"
David Sehr [Wed, 7 Sep 2016 17:43:28 +0000 (17:43 +0000)]
Merge "Separate DexIr building from constructors."
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
Greg Kaiser [Wed, 7 Sep 2016 15:00:51 +0000 (15:00 +0000)]
Merge "LogMessageData: Fix assignment in constructor"
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
Roland Levillain [Wed, 7 Sep 2016 11:12:37 +0000 (11:12 +0000)]
Merge "Add build rules for statically linked oatdump on host."
Roland Levillain [Mon, 5 Sep 2016 14:57:33 +0000 (15:57 +0100)]
Do type checks in ArraySet without read barriers.
This approach is valid in the case of Baker and non-Baker
read barriers.
Benchmarks (ARM64) score variations on Nexus 5X with CPU
cores clamped at 960000 Hz (aosp_bullhead-userdebug build,
medians of 10 runs for each suite):
- Ritzperf - average (lower is better): -0.44% (virtually unchanged)
- CaffeineMark - average (higher is better): -0.20% (virtually unchanged)
- DeltaBlue (lower is better): -4.08% (slightly better)
- Richards - average (lower is better): -0.57% (virtually unchanged)
- SciMark2 - average (higher is better): -0.52% (virtually unchanged)
Details about Ritzperf benchmarks with meaningful variations
(lower is better):
- GenericCalcActions.MemAllocTest: +3.02% (slightly worse)
Details about Richards benchmarks with meaningful variations
(lower is better):
- gibbons -5.01% (better)
Boot image code size variation on Nexus 5X
(aosp_bullhead-userdebug build):
- total ARM64 framework Oat files size change:
83127840 bytes ->
83082656 bytes (-45184 bytes, -0.05%)
- total ARM framework Oat files size change:
72571872 bytes ->
72522796 bytes (-49076 bytes, -0.07%)
Test: ART_USE_READ_BARRIER=true ART_HEAP_POISONING=true m test-art-host
Test: ART_USE_READ_BARRIER=true ART_HEAP_POISONING=true m test-art-target
Bug:
29516974
Bug:
12687968
Change-Id: I8fe130156ace87dd2e4a15d9f8b4111287e735b3
Colin Cross [Wed, 7 Sep 2016 07:27:40 +0000 (07:27 +0000)]
Merge "Revert "Convert more of art to Android.bp""
Colin Cross [Wed, 7 Sep 2016 07:16:35 +0000 (00:16 -0700)]
Revert "Convert more of art to Android.bp"
This reverts commits
4a456275e25c536f525b6c020ca38c8ada8a05de and
198a957915eb75c5f837ea57d385aa6cfa69f76e.
Change-Id: Ibe49f611ae3ed7748bcfc9ac07f8d1f52d6bea3a
Treehugger Robot [Wed, 7 Sep 2016 04:15:09 +0000 (04:15 +0000)]
Merge "Fix art tests"
Colin Cross [Wed, 7 Sep 2016 02:32:39 +0000 (19:32 -0700)]
Fix art tests
dalvikvm needs to be compiled for 32-bit and 64-bit.
Change-Id: I184d7e4e3338c0858b0520f7eba7f9b256cfc02a
Treehugger Robot [Wed, 7 Sep 2016 01:35:01 +0000 (01:35 +0000)]
Merge "Convert more of art to Android.bp"
Treehugger Robot [Tue, 6 Sep 2016 23:12:04 +0000 (23:12 +0000)]
Merge "Add -g to art script --perf-report"
Hiroshi Yamauchi [Tue, 6 Sep 2016 21:42:29 +0000 (21:42 +0000)]
Merge changes I31aaf3ae,I8ef4639f
* changes:
Disable the from-space memory protection under host debug build.
Revert "Disable the from-space memory protection under debug/gcstress."
David Sehr [Thu, 1 Sep 2016 20:03:50 +0000 (13:03 -0700)]
Separate DexIr building from constructors.
Move all the construction from DexFile out of the constructors of the
basic IR.
Bug:
29921113
Change-Id: I3f79c104ce7183ddde73f143c047061416009a54
Test: test-art-host-gtest