OSDN Git Service
Calin Juravle [Fri, 25 Mar 2016 14:20:23 +0000 (14:20 +0000)]
Merge "Discard corrupted or out of date profiles" into nyc-dev
am:
197a6a9
* commit '
197a6a9a58b2e01aa89fba7741e9a01c2f4b7992':
Discard corrupted or out of date profiles
Calin Juravle [Fri, 25 Mar 2016 14:09:55 +0000 (14:09 +0000)]
Merge "Discard corrupted or out of date profiles" into nyc-dev
Calin Juravle [Thu, 24 Mar 2016 20:33:22 +0000 (20:33 +0000)]
Discard corrupted or out of date profiles
Until now we bailed out if the previous profile contained invalid data.
This CLs forces the save and clears any data in a profile that has the
wrong version or contains bad data.
Bug:
27081617
Change-Id: I0424025e37c7b4b817da791996436dd4a932c2cd
Calin Juravle [Fri, 25 Mar 2016 11:39:29 +0000 (11:39 +0000)]
Merge "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""
am:
5d87b29
* commit '
5d87b29339c5301bea0bf2c3f47e520e3d7b0d16':
Revert "ART: Improve JitProfile perf in arm/arm64 mterp"
Calin Juravle [Fri, 25 Mar 2016 11:39:28 +0000 (11:39 +0000)]
Merge "Revert "ART: Ignore hotness updates if jit inactive""
am:
38be6ba
* commit '
38be6bad7a9015b1633751608e833b40dc7a0012':
Revert "ART: Ignore hotness updates if jit inactive"
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:56:42 +0000 (01:56 +0000)]
Merge "Only call jit_load after the zygote fork"
am:
2295f2e
* commit '
2295f2eff470ebb38317d1496b17439e6db8a10a':
Only call jit_load after the zygote fork
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
Mathieu Chartier [Fri, 25 Mar 2016 01:38:07 +0000 (01:38 +0000)]
Only call jit_load after the zygote fork
am:
b10cef4
* commit '
b10cef442594dd0d6c5f1a5784643931a25cc431':
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
Change-Id: I9854716902c79e16bdfd64754cc1ed05e852a5de
buzbee [Thu, 24 Mar 2016 22:42:30 +0000 (22:42 +0000)]
Merge "ART: Ignore hotness updates if jit inactive"
am:
af8e71d
* commit '
af8e71d59b0ab5e79f53a608b62b3618e36e6a98':
ART: Ignore hotness updates if jit inactive
Bill Buzbee [Thu, 24 Mar 2016 21:51:05 +0000 (21:51 +0000)]
Merge "ART: Ignore hotness updates if jit inactive"
Mathieu Chartier [Thu, 24 Mar 2016 21:05:30 +0000 (21:05 +0000)]
Merge "Load jit compiler pre zygote fork"
am:
ee91f08
* commit '
ee91f081f4ea8aa9747893dfaba49dad498d1a4a':
Load jit compiler pre zygote fork
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 20:11:25 +0000 (20:11 +0000)]
Merge "Load jit compiler pre zygote fork" into nyc-dev
am:
d0482a8
* commit '
d0482a8cb4c43b4f440813fe11ae33856a0f100c':
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
Mathieu Chartier [Thu, 24 Mar 2016 20:06:02 +0000 (20:06 +0000)]
Merge "Load jit compiler pre zygote fork" into nyc-dev
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
Change-Id: I9938b022e90c58e7978c5038338d0bcbe2a1dc2b
buzbee [Thu, 24 Mar 2016 17:24:34 +0000 (17:24 +0000)]
Merge "ART: Improve JitProfile perf in arm/arm64 mterp"
am:
42cd3cb
* commit '
42cd3cb6379fe3faf078dcce98610e90155bc8e0':
ART: Improve JitProfile perf in arm/arm64 mterp
Calin Juravle [Thu, 24 Mar 2016 17:03:23 +0000 (17:03 +0000)]
Merge "Extend profman to be able to dump profile content." into nyc-dev
am:
55dde80
* commit '
55dde80ab2bca9f07424aab92ded226761517876':
Extend profman to be able to dump profile content.
Calin Juravle [Thu, 24 Mar 2016 16:59:00 +0000 (16:59 +0000)]
Merge "Extend profman to be able to dump profile content." into nyc-dev
Calin Juravle [Thu, 24 Mar 2016 16:16:34 +0000 (16:16 +0000)]
Extend profman to be able to dump profile content.
With the move to binary format it gets harder to debug profiles. This
adds a simple dumping mechanism to make profiles human readable.
Bug:
27600652
Change-Id: Idc968601cdf6e371822aa98e316605e30749e2e8
Calin Juravle [Thu, 24 Mar 2016 16:19:57 +0000 (16:19 +0000)]
Merge "Update and improve profiles format" into nyc-dev
am:
21fae84
* commit '
21fae845af390fb86831a55db79672587bb17761':
Update and improve profiles format
Bill Buzbee [Thu, 24 Mar 2016 16:16:59 +0000 (16:16 +0000)]
Merge "ART: Improve JitProfile perf in arm/arm64 mterp"
Calin Juravle [Thu, 24 Mar 2016 16:14:29 +0000 (16:14 +0000)]
Merge "Update and improve profiles format" into nyc-dev
David Brazdil [Thu, 24 Mar 2016 15:43:41 +0000 (15:43 +0000)]
Merge "ART: Fix order of operations in HBasicBlock::DisconnectAndDelete"
am:
62e78a7
* commit '
62e78a7ea8221f3fbe848fa883fb86c9d87ba50b':
ART: Fix order of operations in HBasicBlock::DisconnectAndDelete
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:12:59 +0000 (15:12 +0000)]
Merge "ART: Fix run-test"
am:
308640f
* commit '
308640fd439f6e0867770d74600ad4d8edda7093':
ART: Fix run-test
Calin Juravle [Mon, 21 Mar 2016 14:37:55 +0000 (14:37 +0000)]
Update and improve profiles format
- add profile version in the header
- change the profile format to a binary format (saves more than 50% of
space)
- improve error handling during parsing
- improve corner cases handling (all methods/classes in the
file)
- improve error reporting
Bug:
27600652
Bug:
27081617
Change-Id: I54dfbf73fbc943ff6fc3d67f389c658d833cded9
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:38:33 +0000 (14:38 +0000)]
Merge "Fix stub_test after semantic conflicting merge."
am:
1345aa3
* commit '
1345aa365e8baae25d2b3a859a4858fffbe6b11f':
Fix stub_test after semantic conflicting merge.
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:30:55 +0000 (14:30 +0000)]
Merge "ART: Loosen a GraphChecker rule on Boolean inputs"
am:
594973c
* commit '
594973c83bb9187e392a7daf61b570dfe0aa3e08':
ART: Loosen a GraphChecker rule on Boolean inputs
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:44:12 +0000 (13:44 +0000)]
Merge "Post-Quick cleanup: Remove CompilationUnit."
am:
2e38434
* commit '
2e384346d93a747e19fb74f32eba2d1e9403721f':
Post-Quick cleanup: Remove CompilationUnit.
Nicolas Geoffray [Thu, 24 Mar 2016 13:44:12 +0000 (13:44 +0000)]
Merge "Re-enable IMT stub test."
am:
a872368
* commit '
a872368b065af7cd42a1be02742a60877e096bae':
Re-enable IMT stub test.
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:34:29 +0000 (10:34 +0000)]
Merge "Clean up art::HConstant predicates."
am:
0ced281
* commit '
0ced281ae6216c29f57ca0f8b7388a722e8da97b':
Clean up art::HConstant predicates.
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 10:02:58 +0000 (10:02 +0000)]
Merge "Do a null check on the sibling in the register allocator."
am:
843a655
* commit '
843a65556616183a36792bbcc1632c6d8d0e78b2':
Do a null check on the sibling in the register allocator.
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:50:28 +0000 (09:50 +0000)]
Merge "Disable test on arm due to timeouts."
am:
c2b4c6d
* commit '
c2b4c6df0c2c0fc21950c87ec9071518d43fd9c5':
Disable test on arm due to timeouts.
Vladimir Marko [Thu, 24 Mar 2016 09:45:56 +0000 (09:45 +0000)]
Merge "Optimizing: Do not insert suspend checks on back-edges."
am:
63ec322
* commit '
63ec32274066da114d733d8d3c5ff389883e403c':
Optimizing: Do not insert suspend checks on back-edges.
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:43:47 +0000 (03:43 +0000)]
Merge "Fix potential race condition with threads array."
am:
d6026cd
* commit '
d6026cde1ef7f2b0abb7a3561510fe83a7dd9de2':
Fix potential race condition with threads array.
Aart Bik [Thu, 24 Mar 2016 03:35:07 +0000 (03:35 +0000)]
Merge "Fix potential race condition with threads array."
Andreas Gampe [Thu, 24 Mar 2016 02:07:03 +0000 (02:07 +0000)]
Merge "ART: Update DexFile for compiler-filter pass-down" into nyc-dev
am:
5a61468
* commit '
5a614682b7b293138769341aa59414a54ccdf5c8':
ART: Update DexFile for compiler-filter pass-down
Andreas Gampe [Thu, 24 Mar 2016 01:59:22 +0000 (01:59 +0000)]
Merge "ART: Update DexFile for compiler-filter pass-down" into nyc-dev
Hiroshi Yamauchi [Thu, 24 Mar 2016 00:33:00 +0000 (00:33 +0000)]
Merge "Add RosAlloc stats dump."
am:
1fd223d
* commit '
1fd223d781dfb53234cc926e7134b08545d6419c':
Add RosAlloc stats dump.
Hiroshi Yamauchi [Thu, 24 Mar 2016 00:26:57 +0000 (00:26 +0000)]
Merge "Add RosAlloc stats dump."
Hiroshi Yamauchi [Thu, 24 Mar 2016 00:25:58 +0000 (00:25 +0000)]
Merge "Add RosAlloc stats dump." into nyc-dev
am:
4eff6fd
* commit '
4eff6fde9cc17e63f1c6c15bc1cdff9410b4f7a2':
Add RosAlloc stats dump.
Hiroshi Yamauchi [Thu, 24 Mar 2016 00:19:25 +0000 (00:19 +0000)]
Merge "Add RosAlloc stats dump." into nyc-dev
Hiroshi Yamauchi [Wed, 23 Mar 2016 22:51:57 +0000 (22:51 +0000)]
Merge "Use smaller rosalloc run sizes."
am:
760efa3
* commit '
760efa3d01257250972ea47a00c0edb01d608c3a':
Use smaller rosalloc run sizes.
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 22:44:17 +0000 (22:44 +0000)]
Merge "Use smaller rosalloc run sizes." into nyc-dev
am:
c867a27
* commit '
c867a275aa7a132ec1fd4f3b8c27812bda61ea73':
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
Hiroshi Yamauchi [Wed, 23 Mar 2016 22:29:37 +0000 (22:29 +0000)]
Merge "Use smaller rosalloc run sizes." into nyc-dev
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
Change-Id: I20dca2b5b3ddb891c19e2a4f86dc78dbab592b72
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
Hiroshi Yamauchi [Wed, 23 Mar 2016 19:53:26 +0000 (12:53 -0700)]
Add RosAlloc stats dump.
For better understanding of the RosAlloc space.
Bug:
27744947
Bug:
9986565
Change-Id: I02a8028b9728f6862e5e78588a368b8029bb5c1a
Andreas Gampe [Wed, 23 Mar 2016 21:09:05 +0000 (21:09 +0000)]
Revert "Revert "Use compiler filter to determine oat file status.""
am:
7bcfcb8
* commit '
7bcfcb80a31f57a84d754e00bca8698829365208':
Revert "Revert "Use compiler filter to determine oat file status.""
Andreas Gampe [Wed, 23 Mar 2016 20:48:49 +0000 (20:48 +0000)]
Merge "Revert "Revert "Use compiler filter to determine oat file status."""
am:
f33c605
* commit '
f33c605e6986ac274ee3798a3c1944c8a16fbf3f':
Revert "Revert "Use compiler filter to determine oat file status.""
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.
(cherry picked from commit
29d38e77c553c6cf71fc4dafe2d22b4e3f814872)
Bug:
27689078
Change-Id: I6274188610f31dcd9d086fc080b2be93afae5a6b
Richard Uhler [Wed, 23 Mar 2016 20:05:26 +0000 (20:05 +0000)]
Merge "Revert "Revert "Use compiler filter to determine oat file status."""
Hiroshi Yamauchi [Wed, 23 Mar 2016 17:54:59 +0000 (10:54 -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.
Bug:
27744947
Bug:
9986565
Change-Id: If26dfae073df86b8c6e6b411c22e50cd808599ef
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
Nicolas Geoffray [Wed, 23 Mar 2016 18:14:34 +0000 (18:14 +0000)]
Merge "Fix dex2oat/oatdump cross-compilation."
am:
2e89e90
* commit '
2e89e901b9f303549f3ba64e45d87292e9c986c8':
Fix dex2oat/oatdump cross-compilation.
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
Calin Juravle [Wed, 23 Mar 2016 17:58:42 +0000 (17:58 +0000)]
Merge "Fix dex2oat/oatdump cross-compilation."
Roland Levillain [Wed, 23 Mar 2016 17:30:59 +0000 (17:30 +0000)]
Merge remote-tracking branch \'goog/master\' into mege
am:
748438e
* commit '
748438ed62dbd130c2f52f2f0ede1ce75b6c28f0':
Roland Levillain [Wed, 23 Mar 2016 17:22:20 +0000 (17:22 +0000)]
Merge "Fix and improve shift and rotate operations."
am:
541261e
* commit '
541261e66273857c638677424215de91f3d65a6f':
Fix and improve shift and rotate operations.
Roland Levillain [Wed, 23 Mar 2016 17:10:31 +0000 (17:10 +0000)]
Merge "Fix and improve shift and rotate operations."
Calin Juravle [Wed, 23 Mar 2016 17:04:45 +0000 (17:04 +0000)]
Merge remote-tracking branch 'goog/master' into mege
Roland Levillain [Wed, 23 Mar 2016 17:03:45 +0000 (17:03 +0000)]
Merge "Fix some typos in art/compiler/optimizing/nodes.cc."
am:
f8a3dea
* commit '
f8a3dea642fe638f54d181b7ca280b79ee519398':
Fix some typos in art/compiler/optimizing/nodes.cc.
Roland Levillain [Wed, 23 Mar 2016 16:52:36 +0000 (16:52 +0000)]
Merge "Ensure object ArraySet with null value does not need a type check."
am:
7ee5bc5
* commit '
7ee5bc54fbe1bf5218696e63a80e76cd0c8ea387':
Ensure object ArraySet with null value does not need a type check.
Roland Levillain [Wed, 23 Mar 2016 16:44:08 +0000 (16:44 +0000)]
Merge "Fix some typos in art/compiler/optimizing/nodes.cc."
Roland Levillain [Wed, 23 Mar 2016 16:36:59 +0000 (16:36 +0000)]
Fix some typos in art/compiler/optimizing/nodes.cc.
Change-Id: I11be5a9b73da207c9eb497bcaffc49d614c1ca89
Nicolas Geoffray [Wed, 23 Mar 2016 16:35:51 +0000 (16:35 +0000)]
Fix dex2oat/oatdump cross-compilation.
Only set the ImtConflictTable when not in AOT, to not mess up
with the image.
Change-Id: I8f2926ad30dc913d61b0c8957affc25fc8056ada
Roland Levillain [Wed, 23 Mar 2016 16:01:27 +0000 (16:01 +0000)]
Merge "Ensure object ArraySet with null value does not need a type check."
Nicolas Geoffray [Wed, 23 Mar 2016 15:36:43 +0000 (15:36 +0000)]
Merge "Relax too strong DCHECK."
am:
dba2b19
* commit '
dba2b19c845f6bccb43a036fa8602197c3248ff2':
Relax too strong DCHECK.
Nicolas Geoffray [Wed, 23 Mar 2016 15:36:43 +0000 (15:36 +0000)]
Merge "Revert "ART: Weaken DCHECK""
am:
3920099
* commit '
3920099f578fd8015777bc3c1c7392a08b1e08e7':
Revert "ART: Weaken DCHECK"
Nicolas Geoffray [Wed, 23 Mar 2016 15:36:42 +0000 (15:36 +0000)]
Merge "Revert "ART: Temporarily disable test""
am:
3504ca2
* commit '
3504ca23eb2f5846d464f0da5b122d284e00641d':
Revert "ART: Temporarily disable test"
Sebastien Hertz [Wed, 23 Mar 2016 15:36:42 +0000 (15:36 +0000)]
Merge "Update run-test 097-duplicate-method"
am:
e9b6bea
* commit '
e9b6bea979ee9a450ebc4b5611514ba3f82f24d8':
Update run-test 097-duplicate-method
Nicolas Geoffray [Wed, 23 Mar 2016 15:36:41 +0000 (15:36 +0000)]
Merge "Revert "Use compiler filter to determine oat file status.""
am:
7ddf7e9
* commit '
7ddf7e944121528239dc8afc70cbc14027f561ac':
Revert "Use compiler filter to determine oat file status."