OSDN Git Service
Christina Wadsworth [Thu, 18 Aug 2016 17:37:42 +0000 (10:37 -0700)]
ART: Implement a fixed size string dex cache
Previously, the string dex cache was dex_file->NumStringIds() size, and
@ruhler found that only ~1% of that cache was ever getting filled. Since
many of these string dex caches were previously 100,000+ indices in
length, we're wasting a few hundred KB per app by storing null pointers.
The intent of this project was to reduce the space the string dex cache
is using, while not regressing on time that much. This is the first of a
few CLs, which implements the new fixed size array and disables the
compiled code so it always goes slow path. In four other CLs, I
implemented a "medium path" that regresses from the previous "fast path"
only a bit in assembly in the entrypoints. @vmarko will introduce new
compiled code in the future so that we ultimately won't be regressing on
time at all. Overall, space savings have been confirmed as on the order
of 100 KB per application.
A 4-5% slow down in art-opt on Golem, and no noticeable slow down in the
interpreter. The opt slow down should be diminished once the new
compiled code is introduced.
Test: m test-art-host
Bug:
20323084
Change-Id: Ic654a1fb9c1ae127dde59290bf36a23edb55ca8e
Mathieu Chartier [Wed, 17 Aug 2016 22:43:17 +0000 (22:43 +0000)]
Merge "Add newline for INTERNAL_FATAL automatically"
Mathieu Chartier [Wed, 17 Aug 2016 20:22:24 +0000 (20:22 +0000)]
Merge "Track cumulative objects and bytes copied for CC"
Mathieu Chartier [Wed, 17 Aug 2016 17:28:48 +0000 (10:28 -0700)]
Add newline for INTERNAL_FATAL automatically
Before, the behavior was different compared to other log levels
that automatically added newlines.
Bug:
30913672
Test: test-art-host
Change-Id: I02147d8ac7ea38f3e93450ef5290cdfed7b5a2eb
Treehugger Robot [Wed, 17 Aug 2016 19:15:54 +0000 (19:15 +0000)]
Merge "Add skeleton of a jvmti plugin for art."
Narayan Kamath [Wed, 17 Aug 2016 18:50:12 +0000 (18:50 +0000)]
Merge "Blacklist failing libcore tests."
Narayan Kamath [Wed, 17 Aug 2016 18:14:01 +0000 (19:14 +0100)]
Blacklist failing libcore tests.
bug:
30917411
test: art/tools/buildbot_build.sh && art/tools/run-libcore-tests.sh
Change-Id: Ib5e9adb6e9222d607b6d79f0f7eebf3d313272d2
Alex Light [Thu, 11 Aug 2016 22:35:28 +0000 (15:35 -0700)]
Add skeleton of a jvmti plugin for art.
Test: mma test-art-host-run-test-901-hello-ti-agent
Change-Id: If6807b6238d57471e4ba0dd75c717721246443f6
Mathieu Chartier [Wed, 17 Aug 2016 17:07:29 +0000 (10:07 -0700)]
Track cumulative objects and bytes copied for CC
Also print out these values when dumping GC performance info.
Bug:
12687968
Test: Test that values are reasonable after running EAAC.
Change-Id: Id04fadeaf52511560fd4b261f5287ea0a5dae9d4
Neil Fuller [Wed, 17 Aug 2016 13:19:28 +0000 (13:19 +0000)]
Merge "Logging improvements for C++ / Java structure issues"
Neil Fuller [Wed, 17 Aug 2016 12:17:06 +0000 (12:17 +0000)]
Merge "Adjustments for changes made to java.lang.Class"
Neil Fuller [Wed, 17 Aug 2016 10:39:26 +0000 (11:39 +0100)]
Logging improvements for C++ / Java structure issues
When C++ and Java structures are different sizes or arranged
differently some log statements are useful but are hard to
pick out because they merge with other log lines. Adding
"\n" to the end of them makes it easier to read.
Change-Id: Ia6d78e0832c7814bf1fef42bb3d8c056f83766bd
Test: make build-art-host
Neil Fuller [Tue, 16 Aug 2016 18:53:07 +0000 (19:53 +0100)]
Adjustments for changes made to java.lang.Class
Fix up the runtime after removal of the annotationType field
from java.lang.Class.
Test: make test-art-host / boot a device
Change-Id: I5f37567d2b5ec381b35e66fef29287abe307b840
Treehugger Robot [Wed, 17 Aug 2016 03:18:36 +0000 (03:18 +0000)]
Merge "Always mark zygote large objects for CC"
Mathieu Chartier [Tue, 16 Aug 2016 19:15:59 +0000 (12:15 -0700)]
Always mark zygote large objects for CC
Prevent needing to gray holders of zygote large objects.
System wide zygote space PSS after boot:
12644 kB -> 5571 kB for CC.
Also PSS reduction in zygote large objects themselves since their
gray bit would have been set each GC.
Overall LOS savings hard to measure, could be up to 316 * 4KB per
app since there are 316 zygote large objects.
Also clear mod-union tables for image spaces to prevent dirty
image pages if any of the image spaces point to zygote large objects.
System wide .art mmap: 37432 kB -> 34372 kB
System server before (N6P):
LOS shared dirty: 12888 kB
Zygote space shared dirty: 700 kB
Zygote space private dirty: 868 kB
.art private dirty: 1696 kB
After:
LOS shared dirty 13672 kB
Zygote space shared dirty: 1072 kB
Zygote space private dirty: 496 kB
.art private dirty: 1432 kB
Bug:
29516968
Test: test-art-host with baker CC, debug N6P phone booting
Change-Id: Ia37ce2c11217cf56885bd1d1dc084332fcbb7843
Treehugger Robot [Tue, 16 Aug 2016 21:51:02 +0000 (21:51 +0000)]
Merge "jni: Fast path for @FastNative annotated java methods"
Igor Murashkin [Fri, 29 Jul 2016 16:51:58 +0000 (09:51 -0700)]
jni: Fast path for @FastNative annotated java methods
Adds a faster path for java methods annotated with
dalvik.annotation.optimization.FastNative .
Intended to replace usage of fast JNI (registering with "!(FOO)BAR" descriptors).
Performance Microbenchmark Results (Angler):
* Regular JNI cost in nanoseconds: 115
* Fast JNI cost in nanoseconds: 60
* @FastNative cost in nanoseconds: 36
Summary: Up to 67% faster (vs fast jni) JNI transition cost
Change-Id: Ic23823ae0f232270c068ec999fd89aa993894b0e
Treehugger Robot [Tue, 16 Aug 2016 19:53:15 +0000 (19:53 +0000)]
Merge "Update ahat README and manifest for release 0.7."
Treehugger Robot [Tue, 16 Aug 2016 17:59:51 +0000 (17:59 +0000)]
Merge "Remove unused GetDalvikCacheFilenameOrDie."
Treehugger Robot [Tue, 16 Aug 2016 16:34:36 +0000 (16:34 +0000)]
Merge "Welcome to JavaFuzz as our latest A[a]rt tools team member!"
Aart Bik [Tue, 9 Aug 2016 17:49:54 +0000 (10:49 -0700)]
Welcome to JavaFuzz as our latest A[a]rt tools team member!
Rationale:
JavaFuzz is tool for generating random Java programs with
the objective of fuzz testing the ART infrastructure. Each
randomly generated Java program can be run under various
modes of execution, such as using the interpreter, using
the optimizing compiler, using an external reference
implementation, or using various target architectures.
Any difference between the outputs (a divergence) may
indicate a bug in one of the execution modes.
Test: tbd
Bug=
30610121
Change-Id: I92dcac35f5229996936d01a0ba7f5acf6dc7b433
Richard Uhler [Mon, 15 Aug 2016 23:12:57 +0000 (16:12 -0700)]
Remove unused GetDalvikCacheFilenameOrDie.
Change-Id: I8987fa488a89865d4a5fb56dd00cc396ee33bcce
Test: m test-art-host-gtest-utils_test32
Test: m build-art-host-tests
Test: m build-art-target-tests
Mathieu Chartier [Mon, 15 Aug 2016 22:28:19 +0000 (22:28 +0000)]
Merge "Change gcstress runtest option"
Treehugger Robot [Mon, 15 Aug 2016 21:32:30 +0000 (21:32 +0000)]
Merge "ART: Refactor ImageSpace loading"
Richard Uhler [Mon, 15 Aug 2016 18:01:01 +0000 (11:01 -0700)]
Update ahat README and manifest for release 0.7.
Change-Id: Iccc5db7112cb92e24e9e294273a3ce2b0d4b7aba
Test: Launch ahat and verify it reports 0.7 as the version.
Andreas Gampe [Sat, 13 Aug 2016 04:53:32 +0000 (21:53 -0700)]
ART: Refactor ImageSpace loading
Make the code more straightforward so it is easier to reason
about and extend.
Also change return types to unique pointers so it's clear that
it is the caller's responsibility to free those when necessary.
Bug:
30832951
Test: m test-art-host
Test: device booting
Change-Id: I3216eb702e45357a48af5158dacbe40e79bd1ae9
Treehugger Robot [Mon, 15 Aug 2016 17:12:02 +0000 (17:12 +0000)]
Merge "Clean up use of GetDalvikCache."
Mathieu Chartier [Mon, 15 Aug 2016 16:50:11 +0000 (16:50 +0000)]
Merge "Improve READ_BARRIER_MARK_REG for arm32"
Treehugger Robot [Mon, 15 Aug 2016 14:35:48 +0000 (14:35 +0000)]
Merge "Revert "Enable IntermediateAddress for primitive arrays with read barriers.""
Roland Levillain [Mon, 15 Aug 2016 13:17:06 +0000 (13:17 +0000)]
Revert "Enable IntermediateAddress for primitive arrays with read barriers."
This CL breaks the angler-userdebug build with
`ART_USE_READ_BARRIER=true`.
Test: Build angler-userdebug with `ART_USE_READ_BARRIER=true`.
Bug:
30762467
Bug:
26601270
Bug:
12687968
This reverts commit
12ecf0800d465acdaa3deccd383ff8ed3428a183.
Change-Id: Ia2069ac9436d2336311dd8d0f183c02e587586ae
Roland Levillain [Mon, 15 Aug 2016 10:03:32 +0000 (10:03 +0000)]
Merge "ARM64: VIXL: Support a newer version of VIXL."
Mathieu Chartier [Fri, 12 Aug 2016 23:11:24 +0000 (16:11 -0700)]
Change gcstress runtest option
No longer passes down SS as the collector. Motivation is to allow
running gcstress with concurrent copying.
New usage is for SS:
mm test-art-host ART_TEST_GC_STRESS=true ART_DEFAULT_GC_TYPE=SS
Bug:
30807718
Test: mm test-art-host ART_TEST_GC_STRESS=true ART_DEFAULT_GC_TYPE=SS
Change-Id: I4416c1ca9ead027536acc9d24b1ec80d5a68c6a1
Mathieu Chartier [Fri, 12 Aug 2016 20:19:44 +0000 (13:19 -0700)]
Improve READ_BARRIER_MARK_REG for arm32
Use blocked register IP as scratch, avoid pushing in fast path.
Clean up slow path to not have simpler logic and one less memory
write.
Add simple fast path handling for region space TLAB object
allocation.
Test: test-art-target, N6P booting with CC baker
Bug:
30162165
Change-Id: I6594e42d3d6277ffe7bb79df09df8be6bee85eb5
Mathieu Chartier [Sat, 13 Aug 2016 00:06:30 +0000 (00:06 +0000)]
Merge "Fix heap poisoning"
Treehugger Robot [Fri, 12 Aug 2016 23:16:45 +0000 (23:16 +0000)]
Merge "Make test work when running ndebug."
Mathieu Chartier [Fri, 12 Aug 2016 22:44:44 +0000 (15:44 -0700)]
Fix heap poisoning
Was wrong register.
Test: test-art-host-run-test CC table lookup + poisoning.
Bug:
30162165
Change-Id: If347a40963bcc2fb9e21c54b5405c852bcd3af08
Treehugger Robot [Fri, 12 Aug 2016 22:07:41 +0000 (22:07 +0000)]
Merge "Revert "Revert "Iterative move coalescing for gc regalloc"""
Treehugger Robot [Fri, 12 Aug 2016 21:58:25 +0000 (21:58 +0000)]
Merge "ART: Remove zygote OTA code"
Alex Light [Fri, 12 Aug 2016 21:43:48 +0000 (14:43 -0700)]
Make test work when running ndebug.
Change-Id: Iea58ccef51fddaeae4b1fb7084a7956400a81dfe
Test: ART_TEST_RUN_TEST_NDEBUG=true mma -j40 test-art-host-run-test-900-hello-plugin
Treehugger Robot [Fri, 12 Aug 2016 20:54:05 +0000 (20:54 +0000)]
Merge "Use TestCodeGeneratorX86 in codegen unit tests"
Matthew Gharrity [Fri, 12 Aug 2016 16:10:45 +0000 (16:10 +0000)]
Revert "Revert "Iterative move coalescing for gc regalloc""
This reverts commit
6f61ee5623a676ce983ccfa1aba9b2ae1237e163,
and fixes the arena allocator issues in the original CL.
Functionality from the original CL has not changed.
Test: m valgrind-test-art-host-gtest-register_allocator_test
Test: ART_TEST_OPTIMIZING_GRAPH_COLOR=true m test-art-host-run-test
Change-Id: Idd979f4e03f0c2800e0c07a0a7d392c8a4230aab
Andreas Gampe [Sat, 9 Jul 2016 17:51:12 +0000 (10:51 -0700)]
ART: Remove zygote OTA code
The renaming and relabeling of the A/B artifacts is now done in
a special-purpose script started by init, so as to not complicate
the logic here (e.g., name of the current slot).
Partially reverts commit
754479f7aa056602de8282f4f03718b42c20b89b.
Bug:
25612095
Bug:
28069686
Change-Id: I4d965361000fd448e199c9af059b6d18bfe928bb
(cherry picked from commit
ff2a8ef2ed6b3f21da26f85197170d7d2a9f5134)
Richard Uhler [Fri, 12 Aug 2016 16:05:13 +0000 (09:05 -0700)]
Clean up use of GetDalvikCache.
Switch the only caller of the non-void version of GetDalvikCache that set
create_if_absent true to use the void version of GetDalvikCache. Then no
callers of the non-void version of GetDalvikCache set create_if_absent to
true, so that argument is no longer needed. And without create_if_absent,
there is no case when the function will abort, so the 'OrDie" option is no
longer necessary.
Change-Id: I83f60dcc8a8f3b1f91fd2971e9028f6a7dd8384d
Test: m art-test-host
Test: m art-test-target
Treehugger Robot [Fri, 12 Aug 2016 18:19:54 +0000 (18:19 +0000)]
Merge "ART: Reduce stack frame size limit on host"
Mathieu Chartier [Fri, 12 Aug 2016 17:34:56 +0000 (17:34 +0000)]
Merge "Optimize x86_64 TLAB allocation speed"
Treehugger Robot [Fri, 12 Aug 2016 17:33:34 +0000 (17:33 +0000)]
Merge changes I852b4daf,Id648eaed
* changes:
Add basic runtime-plugins support.
Create a basic agent loading framework.
Treehugger Robot [Fri, 12 Aug 2016 17:11:01 +0000 (17:11 +0000)]
Merge "ART: Configure stack guard size in the Makefile"
Treehugger Robot [Fri, 12 Aug 2016 15:14:44 +0000 (15:14 +0000)]
Merge "Fix duplicate checks in JNI macro assemblers."
Roland Levillain [Fri, 12 Aug 2016 13:45:57 +0000 (13:45 +0000)]
Merge "Adjust spacing before NOLINT comments in ART."
Vladimir Marko [Fri, 12 Aug 2016 13:26:15 +0000 (14:26 +0100)]
Fix duplicate checks in JNI macro assemblers.
Instead of checking one register twice, check the other
register passed to the function.
Test: Run ART test suite on host and Nexus 5.
Bug:
30739460
Change-Id: If868ea14f5c192982488ed065b279a019b5b7cf4
Artem Serov [Mon, 8 Aug 2016 14:11:24 +0000 (15:11 +0100)]
ARM64: VIXL: Support a newer version of VIXL.
Please note that compiling VIXL with -Wshadow is a known VIXL issue.
This will be resolved in a later version of VIXL, when we can drop
the deprecated API for getters and setters.
For more info take a look at VIXL_DEPRECATED in the VIXL source code.
Change-Id: Iea30b1a7b065f9b16a92c6cc7ebdc50ef068b348
Roland Levillain [Thu, 11 Aug 2016 22:53:33 +0000 (23:53 +0100)]
Adjust spacing before NOLINT comments in ART.
Note that neither clang-tidy nor cpplint.py complain about
these style "issues", precisely because of the NOLINT
comments.
Test: WITH_TIDY=1 WITH_TIDY_CHECKS='-*,misc-macro-parentheses' mmma art
Change-Id: Id692fd394ffbd4fe208cbbe4407b4d5e208462bb
Vladimir Marko [Fri, 12 Aug 2016 11:23:40 +0000 (11:23 +0000)]
Merge "ARM: Add vldm/vstm assembler support."
Treehugger Robot [Fri, 12 Aug 2016 10:22:57 +0000 (10:22 +0000)]
Merge "Initialize Heap's collector pointers to null."
Treehugger Robot [Fri, 12 Aug 2016 08:01:43 +0000 (08:01 +0000)]
Merge "Revert "Iterative move coalescing for gc regalloc""
Andreas Gampe [Fri, 12 Aug 2016 06:33:15 +0000 (06:33 +0000)]
Revert "Iterative move coalescing for gc regalloc"
There are lifetime issues with allocators and coloring
iterations that got flagged by valgrind.
This reverts commit
465ed699e810868fe5bb39730e6d149a4734372d.
Change-Id: I9e08172321af61d109c116a4f0742fa809e8094b
Test: m test-art-host
Treehugger Robot [Fri, 12 Aug 2016 06:28:56 +0000 (06:28 +0000)]
Merge "Remove kRestrictCompilationFiltersToImage"
Treehugger Robot [Fri, 12 Aug 2016 06:16:40 +0000 (06:16 +0000)]
Merge "Enable compiled-methods= dex2oat switch"
Andreas Gampe [Fri, 12 Aug 2016 04:11:59 +0000 (21:11 -0700)]
ART: Reduce stack frame size limit on host
Clang isn't that bad anymore.
Change-Id: Id9f3e3e34a743b43c6b535d2757be7869a8cf7ea
Andreas Gampe [Fri, 12 Aug 2016 01:35:58 +0000 (18:35 -0700)]
ART: Configure stack guard size in the Makefile
Configure the stack guard reserved size through defines set in
the Makefile. This can be used to increase the gap depending on
the configuration, which may be required to safely support Java
stack overflows in instrumented builds.
Bug:
30766843
Change-Id: Icdd3209e3a261ea8383ef8eab38153255339b04a
Test: m test-art-host
Andreas Gampe [Fri, 12 Aug 2016 01:43:26 +0000 (01:43 +0000)]
Merge "Iterative move coalescing for gc regalloc"
Mathieu Chartier [Wed, 10 Aug 2016 01:37:09 +0000 (18:37 -0700)]
Optimize x86_64 TLAB allocation speed
Added assembly fast path code for resolved and initialized object
region TLAB allocations. Removed 3 instructions from TLAB fast path.
Added assembly fast path for array TLAB region allocators.
Should have more speedups for read barrier fast paths during
resolved and initialized alloc entrypoints.
Bug:
30162165
Test: test-art-host CC baker
Change-Id: I64dd06be5f18c8d6a5de0f15f0e2e7d488e99f18
Matthew Gharrity [Fri, 12 Aug 2016 00:20:05 +0000 (17:20 -0700)]
Use TestCodeGeneratorX86 in codegen unit tests
The codegen unit tests are supposed to use special "test" code
generators when targeting ARM and x86 (due to differing calling
conventions between the C++ source code and the generated code),
yet TestCodeGeneratorX86 was not being used. This fixes that.
(The tests were only succeeding because the register allocator happened
to not assign the EBX register.)
Test: m test-art-host-gtest-codegen_test
Change-Id: Ia3dd6998c38e9ff27b8c2734457f86b3fed44ab4
Alex Light [Thu, 11 Aug 2016 17:48:03 +0000 (10:48 -0700)]
Add basic runtime-plugins support.
This allows one to pass shared-libraries on the command line that the
runtime will load as plugins. They have access to runtime code and can
install hooks to add functionality. Currently the only hook they can
touch is JavaVMExt::AddEnvironmentHook to register a callback for
GetEnv(). More hooks might be added in the future.
Test: ./test/run-test 900
Change-Id: I852b4daf5a3fa71e9888722bc07794632c0e5010
Alex Light [Thu, 28 Jul 2016 17:07:45 +0000 (10:07 -0700)]
Create a basic agent loading framework.
Currently we only allow agents to be loaded at runtime startup, though
this is expected to change soon.
Test: ./test/run-test --host 900
Change-Id: Id648eaed4bbbe6fdef41d64922d023a4db0bfa54
Matthew Gharrity [Fri, 22 Jul 2016 15:52:13 +0000 (08:52 -0700)]
Iterative move coalescing for gc regalloc
Implement iterative move coalescing for graph coloring
register allocation. Based on Andrew Appel's implementation
in "Modern Compiler Implementation in Java", modified to
support constraints such as pair intervals.
Test: ART_TEST_OPTIMIZING_GRAPH_COLOR=true m test-art-host
Change-Id: I8642297d3bd798a4fc4de4b356ac3304098471a5
Vladimir Marko [Thu, 11 Aug 2016 17:25:53 +0000 (18:25 +0100)]
Initialize Heap's collector pointers to null.
Test: Run ART test suite on host.
Bug:
30807718
Change-Id: I9b83b44df250b00af48dc1aa653d78aea84d0874
Treehugger Robot [Thu, 11 Aug 2016 18:41:55 +0000 (18:41 +0000)]
Merge "x86/x86-64: Shorter fast-path for read barrier field load."
Treehugger Robot [Thu, 11 Aug 2016 18:37:50 +0000 (18:37 +0000)]
Merge "ARM64: Use libvixld when compiling for debug mode."
Aart Bik [Thu, 11 Aug 2016 18:24:10 +0000 (18:24 +0000)]
Merge "Full enable new round implementation on x86/x86_64"
Artem Serov [Fri, 15 Jul 2016 14:01:13 +0000 (15:01 +0100)]
ARM: Add vldm/vstm assembler support.
Change-Id: Id97417de8ebd07fc1fbee5d17e4b1c620a2c44cc
Alexandre Rames [Thu, 11 Aug 2016 16:04:14 +0000 (17:04 +0100)]
ARM64: Use libvixld when compiling for debug mode.
VIXL debug mode checks are valuable to catch dangerous code that can
lead to bugs.
This patch includes a couple of fixes for issues spotted by VIXL in debug mode.
Change-Id: I388ae1ffd9256ad74d0b6ce06f79cc7927a5f28a
Vladimir Marko [Thu, 11 Aug 2016 13:16:57 +0000 (14:16 +0100)]
x86/x86-64: Shorter fast-path for read barrier field load.
Test: Tested with ART_USE_READ_BARRIER=true on host.
Bug:
29966877
Bug:
12687968
Change-Id: I73359495910dacb2cc28f1a21ef9e610bab5a476
Vladimir Marko [Thu, 11 Aug 2016 09:01:22 +0000 (09:01 +0000)]
Merge "ARM/ARM64: Improve assembler macros for kSaveEverything frame."
Treehugger Robot [Thu, 11 Aug 2016 05:38:00 +0000 (05:38 +0000)]
Merge "ART: Check for more low-space situations in zygote"
Andreas Gampe [Wed, 10 Aug 2016 03:19:18 +0000 (20:19 -0700)]
ART: Check for more low-space situations in zygote
Even if a boot image exists and can be loaded, the rest of the
platform may not be able to boot. We previously only checked
after full image generation and missed this case.
Also prune the cache if there wasn't even space to put the boot
marker.
(cherry picked from commit
f242f66cf7137ef681e44a494758976e11579260)
Bug:
30765660
Test: m test-art-host
Change-Id: Icd43746e681c62ce2e4e8745fb17bda65ca60372
Treehugger Robot [Thu, 11 Aug 2016 00:37:21 +0000 (00:37 +0000)]
Merge "Fix pending exception failure for encoded statics"
Mathieu Chartier [Wed, 10 Aug 2016 20:57:39 +0000 (13:57 -0700)]
Fix pending exception failure for encoded statics
ReadValueToField may allocate a string and cause OOME, we were
not checking this each loop iteration. Throwing an exception
with a pending exception causes an abort.
Bug:
30690988
Test: test-art-host
Change-Id: I2c9751bf0544cf115d9d8e914e58ebccc81bcbf4
Aart Bik [Wed, 10 Aug 2016 21:05:54 +0000 (14:05 -0700)]
Full enable new round implementation on x86/x86_64
Rationale:
Running JIT on Fugu does not always provide a constant area.
In such cases, we need to construct FP constants through stack.
This only applies to x86.
Test: 580-checker-round
BUG=
26327751
Change-Id: I7e2c80dafbafbe647cfe9ecb039920bb534c666a
Vladimir Marko [Wed, 10 Aug 2016 11:30:05 +0000 (12:30 +0100)]
ARM/ARM64: Improve assembler macros for kSaveEverything frame.
On ARM, use vpush/vpop {d0-d15} instead of {s0-s31}.
On ARM64, use 16-byte aligned stp/ldp for FP registers.
Test: Run ART test suite on Nexus 9.
Bug:
30212852
Change-Id: I36c04d3f1f7e03661c501977c3c9ffa7d2942d2f
Treehugger Robot [Wed, 10 Aug 2016 19:06:01 +0000 (19:06 +0000)]
Merge "Fix negative array size checking"
Mathieu Chartier [Wed, 10 Aug 2016 17:08:58 +0000 (10:08 -0700)]
Fix negative array size checking
Mask out the alignment after the size check. Was broken in previous
CL.
Test: target test 412 --64 with CC + baker
Bug:
30162165
Change-Id: Ic4eb7229fb742490cd9193baf0faa2be6b454f38
Treehugger Robot [Wed, 10 Aug 2016 16:06:07 +0000 (16:06 +0000)]
Merge "ART: Fix JIT profile saver"
Serguei Katkov [Mon, 1 Aug 2016 10:47:04 +0000 (17:47 +0700)]
ART: Fix JIT profile saver
We miss the case when jit activity notification count exceeds
the threshold. Fix it.
Bug:
30583550
Test: manual test in master
Change-Id: Ib10a34d3c2f5d3cf674b1c4d7a3c1204784865d3
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Vladimir Marko [Wed, 10 Aug 2016 14:28:27 +0000 (14:28 +0000)]
Merge "Rename callee save enumerators."
Narayan Kamath [Wed, 10 Aug 2016 14:15:28 +0000 (14:15 +0000)]
Merge "Instruction: Add new formats 45cc and 4rcc."
Vladimir Marko [Wed, 10 Aug 2016 13:29:15 +0000 (13:29 +0000)]
Merge "ARM: Embed constants in add/sub-long."
Vladimir Marko [Wed, 3 Aug 2016 17:49:58 +0000 (18:49 +0100)]
Rename callee save enumerators.
And related image method enumerators, macros, etc.
Clean up some entrypoint assembly comments.
This is a follow-up to
https://android-review.googlesource.com/252348
Test: Run ART test suite on host and Nexus 9.
Bug:
30212852
Change-Id: I2707342d4255c88c547655be83ed97a67e12ae9e
Narayan Kamath [Wed, 3 Aug 2016 11:46:23 +0000 (12:46 +0100)]
Instruction: Add new formats 45cc and 4rcc.
These are new 4 byte formats with the following properties.
- The first three (16 bit) words of these instructions have the same
format as 35c and 3rc respectively.
- The fourth 16 bit word encodes an additional constant index reference.
This change includes placeholder opcodes for invoke-polymorphic and
invoke-polymorphic/range which will be the first dex instructions that
use this new format. In addition to a method_idx that gives the invoked
method, these instructions also provide a proto_idx which gives the
(static) type signature of the call site.
The only reason these are included in this change is because we need
an instruction with a given format to write a unit_test using the Instruction
API.
bug:
30550796
test: make test-art-host
Change-Id: I02612ddee47169757175a8079d82f811f6545945
Narayan Kamath [Wed, 10 Aug 2016 10:20:49 +0000 (10:20 +0000)]
Merge "Revert experimental lambda feature."
Sebastien Hertz [Wed, 10 Aug 2016 05:18:48 +0000 (05:18 +0000)]
Merge "JDWP: fix method argument count"
Treehugger Robot [Wed, 10 Aug 2016 03:52:13 +0000 (03:52 +0000)]
Merge "Add a graph coloring art test option"
Treehugger Robot [Wed, 10 Aug 2016 00:20:25 +0000 (00:20 +0000)]
Merge "ART: Extract JNI macro assembler for arm"
Wojciech Staszkiewicz [Tue, 9 Aug 2016 21:30:55 +0000 (14:30 -0700)]
Enable compiled-methods= dex2oat switch
Pass compiled_methods instead of nullptr from dex2oat to
compiler driver.
Test: Run dex2oat with compiled-methods and dump-passes
set. Look at the dump-passes output and verify that only
methods provided in compiled-methods are compiled.
Change-Id: Ic7249878f7bde5fdb18f9cc348b7ba82de486df8
Matthew Gharrity [Tue, 9 Aug 2016 01:03:46 +0000 (18:03 -0700)]
Add a graph coloring art test option
Test: ART_TEST_OPTIMIZING_GRAPH_COLOR=true m test-art-host
Change-Id: I1bd7c20cdd372ed227204c990484d123c67bdfa8
Andreas Gampe [Tue, 9 Aug 2016 00:32:34 +0000 (17:32 -0700)]
ART: Extract JNI macro assembler for arm
Extract the JNI assembler parts from the regular assembler.
Change-Id: Ice39ffeb854f8651e93443dd69f4c9e0e802975c
Test: m test-art-target (N6)
Treehugger Robot [Tue, 9 Aug 2016 22:23:24 +0000 (22:23 +0000)]
Merge "ART: Extract JNI macro assembler for arm64"
Mathieu Chartier [Tue, 9 Aug 2016 19:05:06 +0000 (19:05 +0000)]
Merge "Card mark holding class instead of declaring class"
Treehugger Robot [Tue, 9 Aug 2016 18:34:17 +0000 (18:34 +0000)]
Merge "Revert "Revert "ARM64 asm for region space array allocation"""
Mathieu Chartier [Fri, 5 Aug 2016 17:46:36 +0000 (10:46 -0700)]
Card mark holding class instead of declaring class
For profiling info, we need to mark the card of the holding class
instead of declaring class. This is required for GC correctness since
the GC relies on the card table to track cross space references.
Test: test-art-host ART_TEST_JIT=true
Bug:
30655270
Change-Id: Ia4690219ded0df38032b644440273e06bc303956