OSDN Git Service
Mathieu Chartier [Tue, 29 Mar 2016 21:02:55 +0000 (14:02 -0700)]
Obtain stack trace outside of critical section
Fixes deadlock if the stack walk does allocations, changed stack
trace format to prevent slowdown.
Added missing GetInterfaceMethodIfProxy to fix a crash in maps.
Bug:
27857910
(cherry picked from commit
23428587d32361736d4c5e0ba7270c7602695a43)
Change-Id: I64373bcd87a68fdd1b58fb855db2b16c9f6ed36b
Richard Uhler [Thu, 31 Mar 2016 19:27:54 +0000 (19:27 +0000)]
Merge "Refine OatFileAssistant.MakeUpToDate failure result."
Vladimir Marko [Thu, 31 Mar 2016 17:53:44 +0000 (17:53 +0000)]
Merge "Remove many `instrumentation` variables from goto interpreter."
Vladimir Marko [Thu, 31 Mar 2016 17:38:23 +0000 (18:38 +0100)]
Remove many `instrumentation` variables from goto interpreter.
Clean up after
https://android-review.googlesource.com/210440 .
Change-Id: I7e7b1863a5627365de8d9a74f559ffe56cb4fdfa
Ying Wang [Thu, 31 Mar 2016 16:52:56 +0000 (16:52 +0000)]
Merge "Remove obsolete LOCAL_DX_FLAGS."
Hans Boehm [Thu, 31 Mar 2016 16:41:46 +0000 (16:41 +0000)]
Merge "Only log excessive timeouts if those appear accidental"
Bill Buzbee [Thu, 31 Mar 2016 14:21:18 +0000 (14:21 +0000)]
Merge "ART: Improve JitProfile perf in x86_64 mterp"
Bill Buzbee [Thu, 31 Mar 2016 14:07:15 +0000 (14:07 +0000)]
Merge "ART: Improve JitProfile perf in x86 mterp"
Vladimir Marko [Thu, 31 Mar 2016 13:24:15 +0000 (13:24 +0000)]
Merge "Fix silly gcc warning."
Vladimir Marko [Thu, 31 Mar 2016 11:34:48 +0000 (12:34 +0100)]
Fix silly gcc warning.
Explicitly specify the underlying type of LinkerPatch::Type
as uint8_t because gcc would select a bigger type and then
complain that
'art::LinkerPatch::patch_type_' is too small to hold all
values of 'enum class art::LinkerPatch::Type'
which is really ridiculous given that the enum contains only
a handful enumerators with default (small) values.
Change-Id: I4c4b21cde62e56b62488bae99d3690d900c3c29e
Roland Levillain [Thu, 31 Mar 2016 11:39:53 +0000 (11:39 +0000)]
Merge "Rename run-test 593-checker-boolean-to-integral-conversions."
Roland Levillain [Thu, 31 Mar 2016 11:32:07 +0000 (12:32 +0100)]
Rename run-test 593-checker-boolean-to-integral-conversions.
Shorten its name to "593-checker-boolean-to-integral-conv"
as some build configurations choke on too long filenames.
Bug:
27616343
Change-Id: I43439d7283920539817511249c6c1b430b3c9c95
Roland Levillain [Thu, 31 Mar 2016 10:39:52 +0000 (10:39 +0000)]
Merge "Fix Boolean to integral types conversions."
Vladimir Marko [Thu, 31 Mar 2016 10:10:07 +0000 (10:10 +0000)]
Merge "ART: Save or erase the file even if I/O failed"
David Brazdil [Thu, 31 Mar 2016 10:00:41 +0000 (10:00 +0000)]
Merge "ART: Fix TypeConversion from long const to float on x86_64"
Pavel Vyssotski [Wed, 16 Mar 2016 07:59:53 +0000 (13:59 +0600)]
ART: Fix TypeConversion from long const to float on x86_64
LocationsBuilderX86_64::VisitTypeConversion should load 32-bit
constant for float type.
Change-Id: I24335568af65e6b98bf07d36f90c8696497dd137
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
Serguei Katkov [Tue, 29 Mar 2016 11:04:00 +0000 (17:04 +0600)]
ART: Improve JitProfile perf in x86_64 mterp
Change-Id: Ieae39e2cc8de8d381e6f9de0faa440c90e20a7a5
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Serguei Katkov [Tue, 29 Mar 2016 06:09:06 +0000 (12:09 +0600)]
ART: Improve JitProfile perf in x86 mterp
Change-Id: Id4c1e52352da8f6b7ce2008bc4adf52bc08847b2
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Serdjuk, Nikolay Y [Tue, 22 Mar 2016 04:06:33 +0000 (10:06 +0600)]
ART: Save or erase the file even if I/O failed
It should close the file in any case.
Change-Id: Idb7db15bfecb0ac47839be3544cc2dce91096d7b
Signed-off-by: Serdjuk, Nikolay Y <nikolay.y.serdjuk@intel.com>
Ying Wang [Wed, 30 Mar 2016 20:55:33 +0000 (13:55 -0700)]
Remove obsolete LOCAL_DX_FLAGS.
Bug:
27400061
Change-Id: Iff834b58b47f8e5759e868159f85bab0f5c544ee
Richard Uhler [Wed, 30 Mar 2016 19:17:55 +0000 (12:17 -0700)]
Refine OatFileAssistant.MakeUpToDate failure result.
Avoid misleading log messages if MakeUpToDate fails because we decided
not to compile dex code.
Bug:
27641809
Change-Id: I184f8e89648183cba4ebe7a1dc5e0e6c8774c15b
Aart Bik [Wed, 30 Mar 2016 18:59:27 +0000 (18:59 +0000)]
Merge "Fix arm64 simplifier bug that tries to remove same statement twice. With fail-before/pass-after test (on arm64)."
Andreas Gampe [Wed, 30 Mar 2016 18:20:01 +0000 (18:20 +0000)]
Merge "ART: Fix unstarted runtime for Security"
Aart Bik [Tue, 29 Mar 2016 20:54:53 +0000 (13:54 -0700)]
Fix arm64 simplifier bug that tries to remove same statement twice.
With fail-before/pass-after test (on arm64).
Rationale:
This visitor removes statement "forward", which is a bit unusual, and
exposes a bug if statement is revisited and qualifies for removal again.
BUG=
27851582
Change-Id: Ia8cddba32b4dfe9fd480852deb358eaa977f0e1f
Roland Levillain [Wed, 30 Mar 2016 18:09:03 +0000 (19:09 +0100)]
Fix Boolean to integral types conversions.
Bug:
27616343
Change-Id: I050f92045bca1b8b5d6da53547cc617f17be84b1
Bill Buzbee [Wed, 30 Mar 2016 18:02:22 +0000 (18:02 +0000)]
Merge "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp"""
Vladimir Marko [Wed, 30 Mar 2016 17:29:44 +0000 (17:29 +0000)]
Merge "Optimizing: Clean up after const-string sharpening."
Vladimir Marko [Wed, 30 Mar 2016 15:30:21 +0000 (16:30 +0100)]
Optimizing: Clean up after const-string sharpening.
Do not look up the String for JIT, just check if it's in the
dex cache. Strings on hot paths should already be resolved
and we don't want to unnecessarily increase JIT compile time
to have a chance of improving a cold path.
Also, change the enum LinkerPatchType to be an inner enum
class of LinkerPatch and clean up casts between pointers and
uint64_t.
Change-Id: Ia6e0513af1a84ce94a3b30edac0c592157d374ec
Richard Uhler [Wed, 30 Mar 2016 15:19:11 +0000 (15:19 +0000)]
Merge "Don't return kPatchOatNeeded if there is no patch info."
Vladimir Marko [Wed, 30 Mar 2016 13:47:59 +0000 (13:47 +0000)]
Merge "Optimizing: Improve const-string code generation."
Vladimir Marko [Wed, 30 Mar 2016 09:58:54 +0000 (09:58 +0000)]
Merge "X86_64: Replace x86_64 xchg instruction use"
David Brazdil [Wed, 30 Mar 2016 09:46:14 +0000 (09:46 +0000)]
Merge "ART: Flush ostream less frequently in GraphVisualizer"
David Brazdil [Wed, 30 Mar 2016 08:41:02 +0000 (09:41 +0100)]
ART: Flush ostream less frequently in GraphVisualizer
We have seen Checker tests timing out on debug-GC configurations after
having switched to Optimizing because its GraphVisualizer makes too
many syscalls which the configuration keeps track of.
This patch replaces std::endl with "\n" across GraphVisualizer so as
to not flush the stream after every line of output.
Bug:
27826765
Change-Id: I5e3f1e92f8a84f36d324d56945e2d420b2d36a5d
Andreas Gampe [Wed, 30 Mar 2016 02:33:56 +0000 (19:33 -0700)]
ART: Fix unstarted runtime for Security
Derive the path for the libcore jar from the boot classpath string
instead of from the dex file location.
Bug:
27899446
Change-Id: I22a9be76303edb2ec72f4cf2e7a4b3bfed37d9c7
Andreas Gampe [Wed, 30 Mar 2016 00:47:15 +0000 (00:47 +0000)]
Merge "ART: Postpone interface-related dex failure to version 37"
Andreas Gampe [Tue, 29 Mar 2016 01:31:29 +0000 (18:31 -0700)]
ART: Postpone interface-related dex failure to version 37
For app compat, at least for now make the check for public-final-static
of interface members not fail on dex file versions less than 37. This
may be changed in future releases.
Bug:
27831184
Change-Id: If8ee50321298b951d4a78062c8eb583fec27394f
Bill Buzbee [Fri, 25 Mar 2016 13:16:55 +0000 (13:16 +0000)]
Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""
Ready for review.
This reverts commit
6aef867f4d1a98a12bcdd65e9bf2ff894f0f2d7e.
Change-Id: I5d53ed2bedc7e429ce7d3cdf80b6696a9628740e
Richard Uhler [Tue, 29 Mar 2016 20:27:41 +0000 (13:27 -0700)]
Don't return kPatchOatNeeded if there is no patch info.
Bug:
27693977
Change-Id: Ie1f27cc45f3cb434108a375136480cb92fd95e26
Andreas Gampe [Tue, 29 Mar 2016 21:24:18 +0000 (21:24 +0000)]
Merge "ART: Update DexFile for compiler-filter pass-down"
Vladimir Marko [Tue, 29 Mar 2016 18:58:43 +0000 (18:58 +0000)]
Merge "Disable oatdump_test on mips due to timeouts."
Vladimir Marko [Mon, 22 Feb 2016 10:39:50 +0000 (10:39 +0000)]
Optimizing: Improve const-string code generation.
For strings in the boot image, use either direct pointers
or pc-relative addresses. For other strings, use PC-relative
access to the dex cache arrays for AOT and direct address of
the string's dex cache slot for JIT.
For aosp_flounder-userdebug:
- 32-bit boot.oat: -692KiB (-0.9%)
- 64-bit boot.oat: -948KiB (-1.1%)
- 32-bit dalvik cache total: -900KiB (-0.9%)
- 64-bit dalvik cache total: -3672KiB (-1.5%)
(contains more files than the 32-bit dalvik cache)
For aosp_flounder-userdebug forced to compile PIC:
- 32-bit boot.oat: -380KiB (-0.5%)
- 64-bit boot.oat: -928KiB (-1.0%)
- 32-bit dalvik cache total: -468KiB (-0.4%)
- 64-bit dalvik cache total: -1928KiB (-0.8%)
(contains more files than the 32-bit dalvik cache)
Bug:
26884697
Change-Id: Iec7266ce67e6fedc107be78fab2e742a8dab2696
Andreas Gampe [Wed, 23 Mar 2016 22:03:46 +0000 (15:03 -0700)]
ART: Update DexFile for compiler-filter pass-down
Update getDexOptNeeded. Add implementations for isValidCompilerFilter
and isProfileGuidedCompilerFilter.
Bug:
27689078
(cherry picked from commit
1d23d43e29e41adb3d504332c8833acaacb49e50)
Change-Id: I06b9d75f58c59cb07ef5170f784ea6745168efaa
Vladimir Marko [Tue, 29 Mar 2016 17:42:21 +0000 (18:42 +0100)]
Disable oatdump_test on mips due to timeouts.
Bug:
27824283
Change-Id: I8014471385fdfe0e98760af04507cd81338f9952
Vladimir Marko [Tue, 29 Mar 2016 08:56:19 +0000 (08:56 +0000)]
Merge "Optimizing: Reduce arena memory used by GraphChecker."
Hans Boehm [Mon, 28 Mar 2016 21:36:23 +0000 (14:36 -0700)]
Only log excessive timeouts if those appear accidental
Do not generate a log message even when timeout would cause us to wake
up past the end of Linux time, if the timeout specification looks like
it was meant to wait forever. Avoids log spam.
Bug:
27723547
Change-Id: I98d0fc1b1813a10ad906282957675b85bd933472
Andreas Gampe [Tue, 29 Mar 2016 02:31:16 +0000 (02:31 +0000)]
Merge "ART: Make verifier fail log level adjustable"
Andreas Gampe [Tue, 29 Mar 2016 01:38:19 +0000 (01:38 +0000)]
Merge "ART: Clean up verifier"
Andreas Gampe [Fri, 25 Mar 2016 23:58:00 +0000 (16:58 -0700)]
ART: Make verifier fail log level adjustable
To help for build failures.
Change-Id: I6c94dfb50177daa7d89902d78715ccec31bf0e45
Andreas Gampe [Fri, 25 Mar 2016 23:58:00 +0000 (16:58 -0700)]
ART: Clean up verifier
Clean up verifier post-Quick.
Change-Id: I0b05e10dd06edd228fe2068c8afffc4b7d7fdffa
Alex Light [Mon, 28 Mar 2016 21:26:05 +0000 (21:26 +0000)]
Merge "Add support for Dex version 37 in Runtime."
Aart Bik [Sat, 26 Mar 2016 00:44:53 +0000 (00:44 +0000)]
Merge "Fix bug not accounting for type in induction comparison. Extended unit tests."
Andreas Gampe [Fri, 25 Mar 2016 23:53:20 +0000 (23:53 +0000)]
Merge "ART: Relax verifier checks"
Andreas Gampe [Fri, 25 Mar 2016 23:24:20 +0000 (16:24 -0700)]
ART: Relax verifier checks
Only bail for unresolved merge types in a couple of cases. Follow-up
to
bb18a03c44d99b3cae232d445d56e80d8388cca9.
Bug:
27799205
Change-Id: If448e14036bc5e245677e0cd8cdddee02b320525
Aart Bik [Fri, 25 Mar 2016 20:14:53 +0000 (13:14 -0700)]
Fix bug not accounting for type in induction comparison.
Extended unit tests.
Rationale:
Now that inductions are typed, comparisons should take
the type into account as well.
Change-Id: Ie533bb728d2006390646657573fa743e6fc37ff2
Ying Wang [Fri, 25 Mar 2016 21:41:41 +0000 (21:41 +0000)]
Merge "Allow x86+arm multilib build."
Ying Wang [Thu, 17 Mar 2016 02:40:00 +0000 (19:40 -0700)]
Allow x86+arm multilib build.
The explicit dependency of dex2oat on installed file of libart-compiler
isn't necessary: the build sets up the dependency automatically when
dex2oat links liblibart-compiler.
Also the way of the explicit dependency is incorrect if multilib is
involved: a 64-bit dex2oat may depend on 32-bit libart-compiler.
Bug:
27526885
Change-Id: I4a9d72b49f5712695ff5a32b88df5eab9df7c1e4
(cherry-pick from commit
5eec66ea27a2fa5bfa1b4f9bd203c76e2990d7a2)
Aart Bik [Fri, 25 Mar 2016 18:04:18 +0000 (18:04 +0000)]
Merge "Avoid removing new-instance instruction twice. Includes a fail-before/pass-after regression test."
Andreas Gampe [Fri, 25 Mar 2016 17:45:31 +0000 (17:45 +0000)]
Merge "ART: Allow array-ness for unresolved merge types"
Andreas Gampe [Wed, 23 Mar 2016 03:34:25 +0000 (20:34 -0700)]
ART: Allow array-ness for unresolved merge types
In case component types aren't resolvable, array types won't be
either. They then may be merged. The merge is still potentially
an array type.
Ensure that merging an unresolved array type with a primitive
array type or a non-array type will be resolved to java.lang.Object.
Added tests.
Bug:
27799205
Change-Id: I9beff75318814dddd842abd64ef9a5d2644d801e
Aart Bik [Thu, 24 Mar 2016 22:38:56 +0000 (15:38 -0700)]
Avoid removing new-instance instruction twice.
Includes a fail-before/pass-after regression test.
Rationale:
In some corner cases, one new instance reached more than one
java.lang.String.<init> method call. As a result, the new
instance instruction appeared multiple times in the vector
uninitialized_strings_. A second removal crashes the compiler.
This change list avoid the crash by simply skipping instructions
that are already removed.
BUG=
27847265
Change-Id: I7f8a4f84ea3c184e1529ec3e90bd6749c83c445b
Vladimir Marko [Fri, 25 Mar 2016 15:31:35 +0000 (15:31 +0000)]
Optimizing: Reduce arena memory used by GraphChecker.
Use member variables to reuse the storage instead of
repeatedly allocating new storage for local variables.
Bug:
27690481
Change-Id: I614db9b8614d585653cfbff62e9cf7d7f0c58810
Calin Juravle [Fri, 25 Mar 2016 11:30:27 +0000 (11:30 +0000)]
Merge "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""
Calin Juravle [Fri, 25 Mar 2016 11:29:55 +0000 (11:29 +0000)]
Merge "Revert "ART: Ignore hotness updates if jit inactive""
Calin Juravle [Fri, 25 Mar 2016 11:27:48 +0000 (11:27 +0000)]
Revert "ART: Improve JitProfile perf in arm/arm64 mterp"
This reverts commit
c1d6b341eed646e5adafc6c4fd4e3748f0292368.
Calin Juravle [Fri, 25 Mar 2016 11:27:40 +0000 (11:27 +0000)]
Revert "ART: Ignore hotness updates if jit inactive"
This reverts commit
17bda200dc7e36ba4178501274f10df4c82bea11.
Mathieu Chartier [Fri, 25 Mar 2016 01:48:22 +0000 (01:48 +0000)]
Merge "Only call jit_load after the zygote fork"
Mathieu Chartier [Fri, 25 Mar 2016 00:22:52 +0000 (17:22 -0700)]
Only call jit_load after the zygote fork
Otherwise we always get that enable_debug_features is false since
that flag passed as a compiler option post zygote fork.
No significant change to libart-compiler PSS on calculator.
Bug:
27810774
(cherry picked from commit
b10cef442594dd0d6c5f1a5784643931a25cc431)
Change-Id: Ie50668ba05ad07a5cf046497959f6d27e09f8fe2
Alex Light [Wed, 23 Mar 2016 17:20:41 +0000 (10:20 -0700)]
Add support for Dex version 37 in Runtime.
We are skipping version 36 of the dex file format due to a bug in
Dalvik dating back to ICS where dex files marked version 036 would
erroneously be accepted.
Bug:
27538761
Bug:
27809626
Change-Id: Ic053f7e25f5a8c3df83ff34b6656528824b2df12
Bill Buzbee [Thu, 24 Mar 2016 21:51:05 +0000 (21:51 +0000)]
Merge "ART: Ignore hotness updates if jit inactive"
buzbee [Thu, 24 Mar 2016 20:41:14 +0000 (13:41 -0700)]
ART: Ignore hotness updates if jit inactive
The interpreters are hard-wired to collect hotness data for the
jit. If the jit is in the process of shutting down, discard the
updates.
Change-Id: I0baf73bb2c591e9571964435f6cc45c062b85911
Mathieu Chartier [Thu, 24 Mar 2016 20:48:17 +0000 (20:48 +0000)]
Merge "Load jit compiler pre zygote fork"
Mathieu Chartier [Thu, 24 Mar 2016 18:07:06 +0000 (11:07 -0700)]
Load jit compiler pre zygote fork
Reduces PSS for libart-compiler.so from 115KB to 2KB per app.
Also some clean-up.
Bug:
27810774
(cherry picked from commit
ff2376770c1c6d301778c41e5c27c808a38e6968)
Change-Id: Ic0077a07c21ed9f1952a6c29863a5c0e5bacc01a
Bill Buzbee [Thu, 24 Mar 2016 16:16:59 +0000 (16:16 +0000)]
Merge "ART: Improve JitProfile perf in arm/arm64 mterp"
David Brazdil [Thu, 24 Mar 2016 15:35:10 +0000 (15:35 +0000)]
Merge "ART: Fix order of operations in HBasicBlock::DisconnectAndDelete"
David Brazdil [Thu, 24 Mar 2016 11:18:15 +0000 (11:18 +0000)]
ART: Fix order of operations in HBasicBlock::DisconnectAndDelete
The method would remove predecessors before successors. As a result,
instructions used by dead loop phis would see dangling uses, causing
a DCHECK to fail.
Steps were reordered to remove dependencies in post order.
Bug:
27683071
Change-Id: I8e0e976443fb410908321a065276f1340b757c41
David Brazdil [Thu, 24 Mar 2016 15:03:50 +0000 (15:03 +0000)]
Merge "ART: Fix run-test"
David Brazdil [Thu, 24 Mar 2016 15:01:33 +0000 (15:01 +0000)]
ART: Fix run-test
Follow-up to Ic61ea2193765b4578550538e965ca4f80fa4b287
Bug:
27625564
Change-Id: Ia8b128a05b473896ba9a55df0d2aaf34ae6d06f3
Nicolas Geoffray [Thu, 24 Mar 2016 14:33:39 +0000 (14:33 +0000)]
Merge "Fix stub_test after semantic conflicting merge."
Nicolas Geoffray [Thu, 24 Mar 2016 14:31:30 +0000 (14:31 +0000)]
Fix stub_test after semantic conflicting merge.
https://android-review.googlesource.com/#/c/209881/ does
not set the ImtConflictTable when we're a AOT runtime, which the
stub test pretends to be.
Change-Id: I70e00b265e982b46b577ff19ac9272cfee45940d
David Brazdil [Thu, 24 Mar 2016 14:22:27 +0000 (14:22 +0000)]
Merge "ART: Loosen a GraphChecker rule on Boolean inputs"
David Brazdil [Thu, 24 Mar 2016 12:40:52 +0000 (12:40 +0000)]
ART: Loosen a GraphChecker rule on Boolean inputs
GraphChecker tries to verify that Boolean inputs are properly typed.
This is non-trivial in the presence of simplifying optimizations
which capitalize on the fact that a Boolean value is internally
represented as an integer.
This patch removes the test from GraphChecker.
Bug:
27625564
Change-Id: Ic61ea2193765b4578550538e965ca4f80fa4b287
Vladimir Marko [Thu, 24 Mar 2016 13:35:08 +0000 (13:35 +0000)]
Merge "Post-Quick cleanup: Remove CompilationUnit."
Nicolas Geoffray [Thu, 24 Mar 2016 13:34:16 +0000 (13:34 +0000)]
Merge "Re-enable IMT stub test."
Roland Levillain [Thu, 24 Mar 2016 10:25:51 +0000 (10:25 +0000)]
Merge "Clean up art::HConstant predicates."
Nicolas Geoffray [Thu, 24 Mar 2016 09:56:00 +0000 (09:56 +0000)]
Merge "Do a null check on the sibling in the register allocator."
Nicolas Geoffray [Wed, 23 Mar 2016 11:32:27 +0000 (11:32 +0000)]
Do a null check on the sibling in the register allocator.
There may be a lifetime hole between the intervals, which means there is
no interval for the given position.
Litle sister of https://android-review.googlesource.com/#/c/209336/.
bug:
27626705
Change-Id: I8082aa5ae2dc37d8fa5d4c430b69e6defa495439
Nicolas Geoffray [Thu, 24 Mar 2016 09:43:24 +0000 (09:43 +0000)]
Merge "Disable test on arm due to timeouts."
Vladimir Marko [Thu, 24 Mar 2016 09:38:51 +0000 (09:38 +0000)]
Merge "Optimizing: Do not insert suspend checks on back-edges."
Vladimir Marko [Wed, 23 Mar 2016 16:59:07 +0000 (16:59 +0000)]
Post-Quick cleanup: Remove CompilationUnit.
Change-Id: I309411b0fffaaed1e218e2c34394bdf6e2f75b48
Nicolas Geoffray [Thu, 24 Mar 2016 09:23:04 +0000 (09:23 +0000)]
Disable test on arm due to timeouts.
bug:
27824283
Change-Id: I0e4d9b37dd3ac2d2390456a791ff28d9ea0b3510
Aart Bik [Thu, 24 Mar 2016 03:35:07 +0000 (03:35 +0000)]
Merge "Fix potential race condition with threads array."
Hiroshi Yamauchi [Thu, 24 Mar 2016 00:26:57 +0000 (00:26 +0000)]
Merge "Add RosAlloc stats dump."
Hiroshi Yamauchi [Wed, 23 Mar 2016 22:51:24 +0000 (15:51 -0700)]
Add RosAlloc stats dump.
For better understanding of the RosAlloc space.
(cherrypick commit
565c2d9bce43c430d4267c82f5702160d971e712)
Bug:
27744947
Bug:
9986565
Change-Id: I8309761a68fbc143bbcd8458a9194085aace7c3e
Hiroshi Yamauchi [Wed, 23 Mar 2016 22:45:01 +0000 (22:45 +0000)]
Merge "Use smaller rosalloc run sizes."
Hiroshi Yamauchi [Wed, 23 Mar 2016 21:22:34 +0000 (14:22 -0700)]
Use smaller rosalloc run sizes.
Use 1/1/1/2/4 instead of 1/4/8/16/32 to save memory footprint.
No regressions in BinaryTrees, Ritz MemAlocTest, Ritz EAAC.
(cherrypick commit
c867a275aa7a132ec1fd4f3b8c27812bda61ea73)
Bug:
27744947
Bug:
9986565
Change-Id: I8ac3fd23719e5cfcce7e5715a03f40701f3ff339
Aart Bik [Wed, 23 Mar 2016 18:31:28 +0000 (11:31 -0700)]
Fix potential race condition with threads array.
Rationale:
Array should be filled with threads prior to first fork,
since only in that case does Java memory model ensure
all threads have consistent view of array, which itself is
subject to one test.
BUG=
27805463
Change-Id: I28f1eb8461842217ced2255062d2135ef880e7d5
Richard Uhler [Wed, 23 Mar 2016 20:05:26 +0000 (20:05 +0000)]
Merge "Revert "Revert "Use compiler filter to determine oat file status."""
Vladimir Marko [Wed, 23 Mar 2016 16:01:47 +0000 (16:01 +0000)]
Optimizing: Do not insert suspend checks on back-edges.
Rely on HGraph::SimplifyLoop() to insert suspend checks.
CodeGenerator's CheckLoopEntriesCanBeUsedForOsr() checks the
dex pcs of suspend checks against branch targets to verify
that we always have an appropriate point for OSR transition.
However, the HSuspendChecks that were added by HGraphBuilder
to support the recently removed "baseline" interfered with
this in a specific case, namely an infinite loop where the
back-branch jumps to a nop. In that case, the HSuspendCheck
added by HGraphBuilder had a dex pc different from the block
and the branch target but its presence would stop the
HGraph::SimplifyLoop() from adding a new HSuspendCheck with
the correct dex pc.
Bug:
27623547
Change-Id: I83566a260210bc05aea0c44509a39bb490aa7003
Andreas Gampe [Wed, 23 Mar 2016 15:31:51 +0000 (15:31 +0000)]
Revert "Revert "Use compiler filter to determine oat file status.""
This reverts commit
845e5064580bd37ad5014f7aa0d078be7265464d.
Add an option to change what OatFileManager considers up-to-date.
In our tests we're allowed to write to the dalvik-cache, so it
cannot be kSpeed.
Bug:
27689078
Change-Id: I0c578705a9921114ed1fb00d360cc7448addc93a
buzbee [Tue, 1 Mar 2016 23:03:16 +0000 (15:03 -0800)]
ART: Improve JitProfile perf in arm/arm64 mterp
ART currently requires two profiling-related things from the
interpreters: hotness updates and OSR switch checks. The hotness
updates previously used the existing instrumentation framework - which
is flexible, but quite heavyweight. For most things, the
instrumentation framework overhead is acceptable, but because we do a
hotness update on every backwards branch the overhead is unacceptable.
Prior to this CL, branch profiling dominates interpreter cost.
Here, we bypass the instrumentation framework for hotness updates
and deliver a significant performance improvement. Running
interpreter-only (dalvikvm -Xint) on a Nexus 6, we see the logic
subtest of Caffeinemark improving from 2600 to 9200, and the
overall score going from 1979 to over 3000. Compared to the
C++ switch interpreter, we see a 6x improvement on the branchy logic
subtest and a 2.6x improvement overall.
Compared with the previous mterp which did not have support for
jit profiling, we see a few (1% to 5%) performance loss on the
standard command-line benchmarks. I consider this acceptable
(we could create an alternate non-profiling mterp which would
have no penalty, but I don't consider this overhead big enough to
justify that).
Change-Id: I50b5b8c5ed8ebda3c8b4e65d27ba7393c3feae04