OSDN Git Service
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
Mathieu Chartier [Wed, 14 Sep 2016 16:55:56 +0000 (16:55 +0000)]
Merge "Make ScopedAssertNoThreadSuspension no overhead for non-debug"
Colin Cross [Wed, 14 Sep 2016 16:50:18 +0000 (16:50 +0000)]
Merge "Update art to use hooks instead of customizer"
Treehugger Robot [Wed, 14 Sep 2016 16:36:35 +0000 (16:36 +0000)]
Merge "ARM/ARM64: Fix throwing entrypoints to call runtime handlers."
Aart Bik [Wed, 14 Sep 2016 15:55:07 +0000 (15:55 +0000)]
Merge "Separate 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
Treehugger Robot [Wed, 14 Sep 2016 15:01:23 +0000 (15:01 +0000)]
Merge "MIPS32: Implement table-based packed switch"
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
Treehugger Robot [Wed, 14 Sep 2016 13:42:12 +0000 (13:42 +0000)]
Merge "Remove 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
Treehugger Robot [Wed, 14 Sep 2016 11:16:24 +0000 (11:16 +0000)]
Merge "Revert "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
Nicolas Geoffray [Wed, 14 Sep 2016 09:30:53 +0000 (09:30 +0000)]
Merge "Make 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
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
Treehugger Robot [Wed, 14 Sep 2016 01:57:44 +0000 (01:57 +0000)]
Merge "Fix mac build"
Treehugger Robot [Wed, 14 Sep 2016 01:55:12 +0000 (01:55 +0000)]
Merge "Add 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
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
Treehugger Robot [Tue, 13 Sep 2016 22:44:00 +0000 (22:44 +0000)]
Merge "Fix mac build"
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
Treehugger Robot [Tue, 13 Sep 2016 22:14:24 +0000 (22:14 +0000)]
Merge "String Compression (interpreter only) bug fix"
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."""
Colin Cross [Tue, 13 Sep 2016 21:07:00 +0000 (14:07 -0700)]
Fix mac build
Change-Id: Ic3e74f96645384c0cec3aa5156f4ead8912f3be2
Colin Cross [Tue, 13 Sep 2016 20:41:03 +0000 (13:41 -0700)]
Update art to use hooks instead of customizer
Change-Id: I46de5ea6ffbc0e32a0b306b8fe82b66b986e33cd
Colin Cross [Tue, 13 Sep 2016 20:40:05 +0000 (20:40 +0000)]
Merge "Convert more of art to Android.bp"
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"
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
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
Treehugger Robot [Tue, 13 Sep 2016 17:59:55 +0000 (17:59 +0000)]
Merge "ART: 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
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.""
Treehugger Robot [Tue, 13 Sep 2016 15:30:49 +0000 (15:30 +0000)]
Merge "ART: Remove LogSeverity NONE"
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
Nicolas Geoffray [Tue, 13 Sep 2016 13:13:45 +0000 (13:13 +0000)]
Merge "New 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
Nicolas Geoffray [Tue, 13 Sep 2016 12:53:18 +0000 (12:53 +0000)]
Merge "Workaround 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
Roland Levillain [Tue, 13 Sep 2016 09:36:27 +0000 (09:36 +0000)]
Merge "Allow for testing alternative code generators in codegen_test.cc"
Neil Fuller [Tue, 13 Sep 2016 09:02:35 +0000 (09:02 +0000)]
Merge "Track libcore Executable.getParameter() changes"
Dan Willemsen [Tue, 13 Sep 2016 03:47:01 +0000 (03:47 +0000)]
Merge "Rename libicuuc-host/libicui18n-host to libicuuc/libicui18n"
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
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."
Treehugger Robot [Tue, 13 Sep 2016 02:26:49 +0000 (02:26 +0000)]
Merge "ART: Remove libart from disassembler"
Andreas Gampe [Mon, 12 Sep 2016 23:45:53 +0000 (23:45 +0000)]
Merge "ART: Remove unnecessary file from vdex"
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
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
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
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
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
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."
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
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."
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
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