OSDN Git Service
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
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."
Treehugger Robot [Tue, 6 Sep 2016 19:43:09 +0000 (19:43 +0000)]
Merge "ART: Dump more info on 137-cfi failure"
Hiroshi Yamauchi [Tue, 6 Sep 2016 19:24:52 +0000 (12:24 -0700)]
Disable the from-space memory protection under host debug build.
Temporarily for diagnosing the odd memory protection issue on the build
server.
Bug:
31172841
Test: test-art-host with SS
Change-Id: I31aaf3ae5b1d3bda901c6c739933b5a4751058c1
Treehugger Robot [Tue, 6 Sep 2016 19:24:44 +0000 (19:24 +0000)]
Merge "Optimizing: Fix handling empty fill-array-data."
Hiroshi Yamauchi [Tue, 6 Sep 2016 19:20:26 +0000 (12:20 -0700)]
Revert "Disable the from-space memory protection under debug/gcstress."
Bug:
31172841
This reverts commit
7a2d267b907000c56f401ab3c51f155cee9752a9.
Change-Id: I8ef4639f255118aba278f8051adf356271116507
Treehugger Robot [Tue, 6 Sep 2016 18:20:07 +0000 (18:20 +0000)]
Merge "Change deoptimize entrypoint to save everything."
Treehugger Robot [Tue, 6 Sep 2016 17:59:40 +0000 (17:59 +0000)]
Merge "ARM: VIXL32: Support a newer version of VIXL."
Andreas Gampe [Mon, 5 Sep 2016 19:30:49 +0000 (12:30 -0700)]
ART: Dump more info on 137-cfi failure
Print the maps of the secondary process. Try to induce in-process
dumping of the secondary.
Bug:
31208203
Change-Id: I16a80e8510b297d61a51fdee91ab1c2f2e5a47c8
Vladimir Marko [Tue, 6 Sep 2016 15:49:15 +0000 (16:49 +0100)]
Optimizing: Fix handling empty fill-array-data.
Test: m test-art-host-run-test-412-new-array
Bug:
31300081
Change-Id: Id0512fc95a96c37de2ceab481666688435fa30f6
Vladimir Marko [Mon, 5 Sep 2016 09:44:04 +0000 (10:44 +0100)]
Change deoptimize entrypoint to save everything.
And implement FPU register retrieval from stack on x86.
On Nexus 9, AOSP ToT, the boot.oat size reduction is
prebuilt multi-part boot image:
- 32-bit boot.oat: -20KiB (-0.03%)
- 64-bit boot.oat: -45KiB (-0.06%)
on-device built single boot image:
- 32-bit boot.oat: -24KiB (-0.04%)
- 64-bit boot.oat: -36KiB (-0.05%)
Test: Run ART test suite on host and Nexus 9.
Bug:
30212852
Change-Id: I5d98e2a24363136d73dfec6100ab02f8eb101911
Treehugger Robot [Tue, 6 Sep 2016 09:07:05 +0000 (09:07 +0000)]
Merge "MIPS32: Ensure preservation of RA in leaf methods if it's clobbered"
Treehugger Robot [Mon, 5 Sep 2016 21:24:09 +0000 (21:24 +0000)]
Merge "Fix typo in definition of `build-art-executable`."
Treehugger Robot [Mon, 5 Sep 2016 18:12:13 +0000 (18:12 +0000)]
Merge "Avoid excessive spill slots for slow paths."
Vladimir Marko [Tue, 9 Aug 2016 10:04:26 +0000 (11:04 +0100)]
Avoid excessive spill slots for slow paths.
Reducing the frame size makes stack maps smaller as we need
fewer bits for stack masks and some dex register locations
may use short location kind rather than long. On Nexus 9,
AOSP ToT, the boot.oat size reduction is
prebuilt multi-part boot image:
- 32-bit boot.oat: -416KiB (-0.6%)
- 64-bit boot.oat: -635KiB (-0.9%)
prebuilt multi-part boot image with read barrier:
- 32-bit boot.oat: -483KiB (-0.7%)
- 64-bit boot.oat: -703KiB (-0.9%)
on-device built single boot image:
- 32-bit boot.oat: -380KiB (-0.6%)
- 64-bit boot.oat: -632KiB (-0.9%)
on-device built single boot image with read barrier:
- 32-bit boot.oat: -448KiB (-0.6%)
- 64-bit boot.oat: -692KiB (-0.9%)
The other benefit is that at runtime, threads may need fewer
pages for their stacks, reducing overall memory usage.
We defer the calculation of the maximum spill size from
the main register allocator (linear scan or graph coloring)
to the RegisterAllocationResolver and do it based on the
live registers at slow path safepoints. The old notion of
an artificial slow path safepoint interval is removed as
it is no longer needed.
Test: Run ART test suite on host and Nexus 9.
Bug:
30212852
Change-Id: I40b3d114e278e2c5807982904fa49bf6642c6275
Roland Levillain [Mon, 5 Sep 2016 15:27:20 +0000 (16:27 +0100)]
Fix typo in definition of `build-art-executable`.
Uses of `LOCAL_MODULES` need two `$` signs within that Make
function definition, so the variable is properly evaluated,
as `build-art-executable` is expanded twice (because it is
used in calls to the `eval` function).
Test: ART_BUILD_HOST_STATIC=true mmma art
Change-Id: I669d493aa7470cb8cde28b2018c784937cd2d335
Anton Kirilov [Fri, 2 Sep 2016 19:55:46 +0000 (20:55 +0100)]
ARM: VIXL32: Support a newer version of VIXL.
Change-Id: I410c1536637a3282640d06894632491fe5d3c72a
Orion Hodson [Mon, 5 Sep 2016 14:42:31 +0000 (14:42 +0000)]
Merge "Address a couple of TODOs and remove an unused header."
Nicolas Geoffray [Mon, 5 Sep 2016 12:54:42 +0000 (12:54 +0000)]
Merge changes I3f825746,Ia4284ccd,I437ffd43
* changes:
Extend the InvokeRuntime() changes to mips64.
Extend the InvokeRuntime() changes to mips.
Extend the InvokeRuntime() changes to x86 and x86_64.
Orion Hodson [Mon, 5 Sep 2016 12:43:11 +0000 (13:43 +0100)]
Address a couple of TODOs and remove an unused header.
Fixing overlooked comments in:
https://android-review.googlesource.com/#/c/258402/
Test: test-art-target-gtest-dex_file_test
Change-Id: I5dc4ddb0cfaf1445a92620d8e2fa35cdb277df6a
Treehugger Robot [Mon, 5 Sep 2016 09:18:53 +0000 (09:18 +0000)]
Merge "Clean up some includes."
Orion Hodson [Mon, 5 Sep 2016 09:11:36 +0000 (09:11 +0000)]
Merge "Support for loading classes from DEX files stored in a ByteBuffer."
Treehugger Robot [Sat, 3 Sep 2016 17:06:43 +0000 (17:06 +0000)]
Merge changes I5acba084,I08a3379d
* changes:
ART: Suppress libbase failures in valgrind
ART: Use a 50-deep call-stack in valgrind
Nicolas Geoffray [Sat, 3 Sep 2016 13:56:59 +0000 (13:56 +0000)]
Merge "ART: Fixup JDWP tests script"
Andreas Gampe [Thu, 31 Dec 2015 03:37:48 +0000 (19:37 -0800)]
ART: Fixup JDWP tests script
The tests have problems on the host because of boot images. Vogar
by default runs in 32-bit mode, but the art script, used for forked
debuggee processes, by default runs in 64-bit. The JDWP forks also
do not set a boot classpath. With that mismatch, when the tests
are run in 32-bit mode on a 64-bit enabled host, the forked processes
will die.
Check whether a --variant parameter was passed to the test (and if
not assume it's x32). If the parameter is x32, then adapt the
debuggee command to ensure the forked runtime also runs in 32-bit
mode and finds the image from the controller. Similarly handle
the x64 case.
Change-Id: Ic22477e33702e1a7c1ca94466bf02df4cb201723
Andreas Gampe [Sat, 3 Sep 2016 02:43:59 +0000 (19:43 -0700)]
ART: Suppress libbase failures in valgrind
Whitelist globals in libbase's logging code that are triggered
when loading libjavacore.
Note: this suppression is very broad and applies to all leaks
during core native-methods binding. It is intentionally so to
be robust to name changes.
Test: m valgrind-test-art-host
Test: m valgrind-test-art-target-gtest-exception_test (N9)
Bug:
31275764
Change-Id: I5acba084fe6cfc3b03e1f899ea546a57ad5cf11c
Andreas Gampe [Sat, 3 Sep 2016 02:43:09 +0000 (19:43 -0700)]
ART: Use a 50-deep call-stack in valgrind
Necessary to diagnose issues. Required for deep suppressions.
Test: m valgrind-test-art-host
Change-Id: I08a3379d4763d66a2ae7db1f2f500c93b0a93e90
Mathieu Chartier [Fri, 2 Sep 2016 21:32:59 +0000 (21:32 +0000)]
Merge "Use the fast path object size for RosAlloc asm stubs"
Nicolas Geoffray [Fri, 2 Sep 2016 18:43:10 +0000 (18:43 +0000)]
Merge "Remove duplicate entry."
Nicolas Geoffray [Fri, 2 Sep 2016 18:42:22 +0000 (19:42 +0100)]
Remove duplicate entry.
Change-Id: Ic9f172a19adb83028e9d13c8349a732931aec7db
Mathieu Chartier [Thu, 1 Sep 2016 21:06:54 +0000 (14:06 -0700)]
Use the fast path object size for RosAlloc asm stubs
Also address comments. MemAllocTest perf on N5X speedup in the noise.
Bug:
9986565
Test: test-art-host -j32, N5X booting
Change-Id: Ic22ca92aab88b37fd66928949bf11264ee3476dc
Treehugger Robot [Fri, 2 Sep 2016 14:55:29 +0000 (14:55 +0000)]
Merge "Blacklist flaky test."
Treehugger Robot [Fri, 2 Sep 2016 14:52:27 +0000 (14:52 +0000)]
Merge "verifier: Pass ClassDef as a reference"
Vladimir Marko [Fri, 2 Sep 2016 11:38:38 +0000 (12:38 +0100)]
Clean up some includes.
Remove some unnecessary includes from header files, replace
others with forward references and add includes to source
files as needed. Reduce dependency on stack.h by pulling
StackReference<> out to its own file.
Test: m test-art-host
Change-Id: I0fb182145e328870cbd918b0ef6ae2950223c1b2
Treehugger Robot [Fri, 2 Sep 2016 13:41:22 +0000 (13:41 +0000)]
Merge "Cache result of an expensive DCHECK"
David Brazdil [Fri, 2 Sep 2016 13:13:18 +0000 (14:13 +0100)]
verifier: Pass ClassDef as a reference
Tiny refactor. ClassDef should never be null, yet we pass it as
a pointer, check it is not null and dereference everywhere.
Change-Id: Id89a1f599f1289d3cc00846306a890e06e438f88
David Brazdil [Fri, 2 Sep 2016 10:42:48 +0000 (11:42 +0100)]
Cache result of an expensive DCHECK
LiveInterval::AddBackEdgeUses tests whether linear order is well
formed on debug builds. This is expensive and can significantly hinder
compilation times when many back edge uses are added.
This patch moves the IsLinearOrderWellFormed test at the end of
linear order generation.
Bug:
31163119
Change-Id: Ic4fe66bee2055f4b2cb065d9451ad5f21ba00676
Treehugger Robot [Fri, 2 Sep 2016 11:32:29 +0000 (11:32 +0000)]
Merge "Revert "Revert "Refactor writing type lookup tables into OAT"""
Orion Hodson [Wed, 17 Aug 2016 09:51:42 +0000 (10:51 +0100)]
Support for loading classes from DEX files stored in a ByteBuffer.
Bug: http://b/
26878838
Test: test-art-target-gtest-dex_file_test
Change-Id: I68845c35784386bde6270102f0079d4f07bc4d03
David Brazdil [Thu, 1 Sep 2016 16:38:47 +0000 (16:38 +0000)]
Revert "Revert "Refactor writing type lookup tables into OAT""
OatWriter used to write type lookup tables through an mmap of the
DEX section of the OAT file. This approach would not work once the
DEX section is moved into the VDEX file, hence it was rewritten to
write the data through OutputStream.
This reverts commit
b92ba6296d4ef5b9a6674120ffaafde7d2511812.
Test: m test-art-host
Bug:
30937355
Change-Id: Id923f2c8a4f9ce2a3834b9886b4358e1b379b83d
Nicolas Geoffray [Fri, 2 Sep 2016 09:04:52 +0000 (10:04 +0100)]
Blacklist flaky test.
bug:
31258002
Change-Id: Ida80028b0fb49208f4eb4d0ba929800b28574902
Treehugger Robot [Fri, 2 Sep 2016 03:09:44 +0000 (03:09 +0000)]
Merge "Disable the from-space memory protection under debug/gcstress."
Treehugger Robot [Fri, 2 Sep 2016 02:05:00 +0000 (02:05 +0000)]
Merge "ART: Use thread annotation macros from base"
Colin Cross [Fri, 2 Sep 2016 00:16:33 +0000 (00:16 +0000)]
Merge "Remove auto-generated executable list"
Alexey Frunze [Wed, 31 Aug 2016 04:40:46 +0000 (21:40 -0700)]
MIPS32: Ensure preservation of RA in leaf methods if it's clobbered
Test: booted MIPS32 in QEMU
Test: test-art-host-gtest
Test: test-art-target-gtest-codegen_test in QEMU
Test: test-art-target-run-test-optimizing on CI20
Change-Id: Ia3da5902d967cd7af313f03ebf414320b0063619
Mathieu Chartier [Thu, 1 Sep 2016 23:06:09 +0000 (23:06 +0000)]
Merge "ART: Clean up x86 asm in dex cache entrypoints"
Colin Cross [Thu, 1 Sep 2016 22:29:52 +0000 (22:29 +0000)]
Merge changes Id2bc87dc,I17c191ec
* changes:
Fix naming of libartd-simulator
Fix debug flag ordering
Treehugger Robot [Thu, 1 Sep 2016 22:12:27 +0000 (22:12 +0000)]
Merge "Make 115-native-bridge idempotent"
Colin Cross [Tue, 30 Aug 2016 23:18:42 +0000 (16:18 -0700)]
Remove auto-generated executable list
Keep a list of the useful executables, and use the -host and -target
phony targets to depend on them for build-art-host and build-art-target.
Relanding I8ff4da32a03c219924be7990963e0c3ba90ef316 with fixes to build
the debug versions of executables, which are needed by the tests.
Change-Id: Id941cf5d1a638763cf4cf2bc0412b0782ae21694
Treehugger Robot [Thu, 1 Sep 2016 21:57:41 +0000 (21:57 +0000)]
Merge "MIPS32: Additional bitCount optimizations."
Hiroshi Yamauchi [Thu, 1 Sep 2016 21:27:25 +0000 (14:27 -0700)]
Disable the from-space memory protection under debug/gcstress.
Temporarily for diagnosing the odd memory protection issue on the build
server.
Bug:
31172841
Test: test-art-host with SS and with SS/gcstress.
Change-Id: I915fcdc451ee92b5487c1fcbf8186767830ef1ad
Mathieu Chartier [Thu, 1 Sep 2016 16:42:39 +0000 (16:42 +0000)]
Merge "Clean up art_quick_resolve_string for arm64"
Mathieu Chartier [Thu, 1 Sep 2016 16:34:48 +0000 (16:34 +0000)]
Merge "Faster allocation fast path"
David Brazdil [Thu, 1 Sep 2016 16:01:13 +0000 (16:01 +0000)]
Merge "Revert "Refactor writing type lookup tables into OAT""
David Brazdil [Thu, 1 Sep 2016 16:00:30 +0000 (16:00 +0000)]
Revert "Refactor writing type lookup tables into OAT"
Gtest not happy.
This reverts commit
1a069a5baa78e55dfa95ad989dc137517000b7fd.
Change-Id: Iada7a93c1928f7f61462615f3128c6b50bb21859
David Brazdil [Thu, 1 Sep 2016 15:38:40 +0000 (15:38 +0000)]
Merge "Refactor writing type lookup tables into OAT"
Vladimir Marko [Thu, 1 Sep 2016 15:35:43 +0000 (15:35 +0000)]
Merge "Revert "Re-enable boot image string sharpening.""
Vladimir Marko [Thu, 1 Sep 2016 15:33:04 +0000 (15:33 +0000)]
Revert "Re-enable boot image string sharpening."
The boot image may not contain the target String.
Bug:
20323084
Bug:
31239436
This reverts commit
9ed010e43c729a801089307c55f20f6d4df8271c.
Change-Id: Id299619ff9866bacd5098f76836355878a478042
David Brazdil [Wed, 31 Aug 2016 16:15:12 +0000 (17:15 +0100)]
Refactor writing type lookup tables into OAT
OatWriter used to write type lookup tables through an mmap of the
DEX section of the OAT file. This approach would not work once the
DEX section is moved into the VDEX file, hence it was rewritten to
write the data through OutputStream.
Test: m test-art-host
Bug:
30937355
Change-Id: Id89a680e6e7cbdba47fa7e211a48b92d30a82b29
Vladimir Marko [Thu, 1 Sep 2016 12:40:03 +0000 (12:40 +0000)]
Merge "[MIPS] Fix a mips64 mterp bug."
Vladimir Marko [Thu, 1 Sep 2016 10:17:20 +0000 (10:17 +0000)]
Merge "Constant fold Equal/NotEqual between null and non-null."
Vladimir Marko [Thu, 1 Sep 2016 09:50:44 +0000 (09:50 +0000)]
Merge "Avoid decrementing iterator to std::set<>::begin() in RosAlloc."
Vladimir Marko [Wed, 31 Aug 2016 17:56:04 +0000 (18:56 +0100)]
Avoid decrementing iterator to std::set<>::begin() in RosAlloc.
Avoid undefined behavior in the expression
free_page_runs_.erase(it--);
when it == free_page_runs_.begin().
Also avoid the similar expression
free_page_runs_.erase(it++)
even though it's always well-defined.
In practice, the undefined behavior has no observable
side effects with the std::set<> implementation we use.
Therefore a regression test is not feasible.
Test: m test-art-host
Change-Id: I4bdeb6cdd068fe5da416b0e66953d5620ad5e999
Treehugger Robot [Thu, 1 Sep 2016 03:21:22 +0000 (03:21 +0000)]
Merge "Disable dexlayout_test on target."
Treehugger Robot [Thu, 1 Sep 2016 02:43:38 +0000 (02:43 +0000)]
Merge "Revert "Remove auto-generated executable list""
Mathieu Chartier [Wed, 31 Aug 2016 16:38:40 +0000 (09:38 -0700)]
Faster allocation fast path
Added a new object size field to class, this field contains the
aligned object size if the object is not finalizable and is
initialized. If the object is finalizable or uninitialized the field
is set to some large value that forces the ASM allocators to go slow
path.
Only implemented for region/normal TLAB for now, will add the to
RosAlloc stubs soon.
CC N6P MemAllocTest: 1067 -> 1039 (25 samples)
CC N6P EAAC: 1281 -> 1260 (25 samples)
RAM overhead technically 0 since mirror::Class was not 8 byte aligned
previously. Since the allocators require 8 byte allignment, there
would have been 1 word of padding at the end of the class. If there
was actually 4 extra bytes per class, the system overhead would be
36000 * 4 = 120KB based on old N6P numbers for the number of loaded
classes after boot.
Bug:
9986565
Test: test-art-host CC baker, N6P phone boot and EAAC runs.
Change-Id: I119a87b8cc6c980bff980a0c62f42610dab5e531
Jeff Hao [Thu, 1 Sep 2016 00:56:13 +0000 (17:56 -0700)]
Disable dexlayout_test on target.
Target doesn't have diff to compare output files.
Bug:
29921113
Test: mm test-art-target-gtest-dexlayout_test
Change-Id: I244c0c74214b780676283de1b309978667ff58e3
Colin Cross [Thu, 1 Sep 2016 01:09:57 +0000 (01:09 +0000)]
Revert "Remove auto-generated executable list"
This reverts commit
6cb44d986fc4a5b12c50f8ae8bafe4d58ae81a36.
Change-Id: Ic9b5413069585d8cda6746307c604ecba8515716
Mathieu Chartier [Tue, 30 Aug 2016 16:42:28 +0000 (09:42 -0700)]
Clean up art_quick_resolve_string for arm64
Use ubfx instead of and, add missing cfi directives.
Test: test-art-target-run-test CC baker, N6P phone booting.
Change-Id: I6e0e958fa7d77a37f727a7170f6fe03eecbc7bcc
Andreas Gampe [Wed, 31 Aug 2016 20:53:13 +0000 (13:53 -0700)]
ART: Use thread annotation macros from base
Use thread annotations from libbase. Only leave the two local
definitions.
Test: m
Test: m test-art-host
Change-Id: I55a731e60b995fa6d0fd54a4da50654d6574019d
Colin Cross [Wed, 31 Aug 2016 21:16:22 +0000 (21:16 +0000)]
Merge "Remove auto-generated executable list"
Jeff Hao [Wed, 31 Aug 2016 20:09:58 +0000 (20:09 +0000)]
Merge changes Idfd8ac9f,I3dacb78f
* changes:
Finish dexlayout dumping of dex files and added test.
Add dex file intermediate representation
Treehugger Robot [Wed, 31 Aug 2016 19:59:39 +0000 (19:59 +0000)]
Merge "Fix a check failure in the CC background transition."
Mathieu Chartier [Wed, 31 Aug 2016 19:41:03 +0000 (19:41 +0000)]
Merge "Fix unnecessary read barrier for resolved/initialized allocations"
Treehugger Robot [Wed, 31 Aug 2016 19:37:50 +0000 (19:37 +0000)]
Merge "ART: Use libbase"
Vladimir Marko [Wed, 31 Aug 2016 18:30:22 +0000 (18:30 +0000)]
Merge "Remove workarounds for [D]CHECK()s in constexpr functions."
Jeff Hao [Mon, 29 Aug 2016 21:18:26 +0000 (14:18 -0700)]
Finish dexlayout dumping of dex files and added test.
The test runs dexdump and dexlayout over the first core library jar file
and diffs the output, checking that they're the same. More dex files
will be added later for better coverage.
Bug:
29921113
Test: mm test-art-host-gtest-dexlayout_test
(cherry-picked from commit
a378e88db648cf19e771714dd1059cf3d41d4753)
Change-Id: Idfd8ac9f069885b675a4a2f0c70aef2cbef5a9b8
Andreas Gampe [Wed, 31 Aug 2016 17:49:55 +0000 (17:49 +0000)]
Merge "ART: SHARED_REQUIRES to REQUIRES_SHARED"
Wojciech Staszkiewicz [Wed, 31 Aug 2016 17:12:53 +0000 (10:12 -0700)]
Make 115-native-bridge idempotent
Adds -f flag to ln calls in 115-native-bridge to stop it from failing
when ran multiple times in the same environment.
Test: m test-art-host-run-test-115-native-bridge
Change-Id: I625c9fd3cef5900eece3b311be6592c615e80ab0
David Sehr [Sun, 7 Aug 2016 23:01:51 +0000 (16:01 -0700)]
Add dex file intermediate representation
Add an intermediate representation, constructed from the DexFile
utilities, that can be used to optimize the layout and re-emit dex
files.
BUG:
29921113
TEST: TODO: Add dex files to compare output with dexdump
(cherry-picked from commit
af14d9f551e6169c201dc7981d9cfbcb53c7d2c7)
Change-Id: I3dacb78fad5228e43d77f20b110bd40e0e116cdb
Serban Constantinescu [Tue, 19 Jul 2016 16:18:07 +0000 (17:18 +0100)]
Extend the InvokeRuntime() changes to mips64.
Change-Id: I3f825746053b9288ca31ab5e823d6a1648dfd894
Serban Constantinescu [Thu, 14 Jul 2016 08:21:59 +0000 (09:21 +0100)]
Extend the InvokeRuntime() changes to mips.
Also fix the side effects for <Static/Instance>Field<Get/Set>.
Test: test-art-target
Change-Id: Ia4284ccd9d0c88210eaa4458f74728c805e2e076
Serban Constantinescu [Tue, 12 Jul 2016 21:53:02 +0000 (22:53 +0100)]
Extend the InvokeRuntime() changes to x86 and x86_64.
Also fix the LocationSummary for intrinsics that call on main
and slowpath.
Test: test-art-host
Change-Id: I437ffd433ee87b1754dbd8c075ec54f00d7d4ccb
Vladimir Marko [Wed, 31 Aug 2016 14:25:25 +0000 (15:25 +0100)]
Remove workarounds for [D]CHECK()s in constexpr functions.
We're now using C++14, so we can use [D]CHECK()s directly
in constexpr functions. Remove the C++11 workaround macros
([D]CHECK_CONSTEXPR) and C++ version checks. Also remove the
'static' qualifier from inline functions in affected files.
Test: m test-art-host
Change-Id: I0f962ad75e4efe9b65325d022cd272b229574222
Vladimir Marko [Wed, 31 Aug 2016 11:18:20 +0000 (12:18 +0100)]
Constant fold Equal/NotEqual between null and non-null.
Test: Add new test cases to 442-checker-constant-folding.
Test: m test-art-host
Change-Id: I14509d5e13d30a66b3c2ac3d76d514f58501c9ab
Vladimir Marko [Wed, 31 Aug 2016 13:17:44 +0000 (13:17 +0000)]
Merge "MIPS32: Fill branch delay slots"
Vladimir Marko [Wed, 31 Aug 2016 13:16:57 +0000 (13:16 +0000)]
Merge "Re-enable boot image string sharpening."
Roland Levillain [Wed, 31 Aug 2016 09:41:23 +0000 (09:41 +0000)]
Merge "Add entrypoint type information."
Hiroshi Yamauchi [Wed, 31 Aug 2016 00:44:41 +0000 (17:44 -0700)]
Fix a check failure in the CC background transition.
If there's a process state update from jank perceptible to jank
in-perceptible and a reverse update right after it, there's a chance
that the heap task daemon sees desired_collector_type ==
kCollectorTypeCC rather than kCollectorTypeCCBackground in
DoPendingCollectorTransition() which leads to a !kUseReadBarrier check
failure in TransitionCollector(). The fix is to move this check after
the early return case where collector_type == collector_type_ in
TransitionCollector() like the CMS/Hspace case.
Bug:
31039431
Bug:
12687968
Test: test-art-host, aosp boot with CC, master boot with CC.
Change-Id: I5fe34cb41eaa01c6d8bf80a185253fde6778e852
Colin Cross [Tue, 30 Aug 2016 23:18:42 +0000 (16:18 -0700)]
Remove auto-generated executable list
Keep a list of the useful executables, and use the -host and -target
phony targets to depend on them for build-art-host and build-art-target.
Change-Id: I8ff4da32a03c219924be7990963e0c3ba90ef316
Andreas Gampe [Tue, 30 Aug 2016 23:38:47 +0000 (16:38 -0700)]
ART: SHARED_REQUIRES to REQUIRES_SHARED
This coincides with the actual attribute name and upstream usage.
Preparation for deferring to libbase.
Test: m
Test: m test-art-host
Change-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518
Alexey Frunze [Sat, 30 Jul 2016 05:04:46 +0000 (22:04 -0700)]
MIPS32: Fill branch delay slots
Test: booted MIPS32 in QEMU
Test: test-art-host-gtest
Test: test-art-target-gtest
Test: test-art-target-run-test-optimizing on CI20
Change-Id: I727e80753395ab99fff004cb5d2e0a06409150d7
Mathieu Chartier [Tue, 30 Aug 2016 22:06:54 +0000 (15:06 -0700)]
Fix unnecessary read barrier for resolved/initialized allocations
The caller is responsible for the read barrier for these entrypoints.
No measured change in benchmarks, tested MemAllocTest.
Bug:
12687968
Test: test-art-host CC baker, N6P booting with CC
Change-Id: If6b00fa2c31ff51b943dbbe6caea2ef0a3fa1ae0
Colin Cross [Tue, 30 Aug 2016 22:45:06 +0000 (15:45 -0700)]
Fix naming of libartd-simulator
Change-Id: Id2bc87dc31a4db0435b50997b54342b0d0cc4599
Colin Cross [Tue, 30 Aug 2016 22:41:08 +0000 (15:41 -0700)]
Fix debug flag ordering
art_debug_defaults needs to come first in the defaults list so that its
prepended flags come after the art_defaults flags.
-Wno-frame-larger-than= also needs to be inside a target block to match the
way the -Wframe-larger-than= flags are inserted by art.go so that they
come after.
Change-Id: I17c191ec9dcc393db1e0805cd058c768e4d09400
Christina Wadsworth [Thu, 25 Aug 2016 20:23:01 +0000 (13:23 -0700)]
ART: Clean up x86 asm in dex cache entrypoints
Change-Id: Icc315d1d5da16cc67eee3c0557cae5781623f3b6
Test: test-art-host
Vladimir Marko [Tue, 30 Aug 2016 16:36:24 +0000 (17:36 +0100)]
Re-enable boot image string sharpening.
Test: Run ART test suite with ART_TEST_PIC_IMAGE=true on host and Nexus 9.
Bug:
20323084
Change-Id: Ifc10e4b6f5078f599711bd84be0cec53494af3af
Chris Larsen [Thu, 14 Apr 2016 23:16:29 +0000 (16:16 -0700)]
MIPS32: Additional bitCount optimizations.
The original algorithm computed the 64-bit bitCount by counting the
bits in two 32-bit words (sort of) in parallel. It was recognized that
at some point the subtotals for the words could be added reducing the
total number of operations to count the set bits for the original
64-bit input value. Doing so not only reduced the number of
instructions needed for the computation but also eliminated one
multiply instruction, and, typically, multiply instructions are multi-
cycles instructions.
Test: Boot MIPS32 QEMU and run 564-checker-bitcount tests.
Change-Id: Ifcbb56812a02a91ac1777543448b207ec0e1e5a6
Treehugger Robot [Tue, 30 Aug 2016 17:15:26 +0000 (17:15 +0000)]
Merge "Save environment snapshot and use at fork/exec"
David Sehr [Wed, 17 Aug 2016 02:22:57 +0000 (19:22 -0700)]
Save environment snapshot and use at fork/exec
Some applications may inadvertently or maliciously set of environment
variables such as LD_LIBRARY_PATH before spawning subprocesses.
To make this more difficult, save the environment at the time the
runtime starts and use the saved copy anytime Exec is called.
BUG:
30160149
TEST: make test-art-{host,target}
Change-Id: I887b78bdb21ab20855636a96da14a74c767bbfef