OSDN Git Service
Mathieu Chartier [Wed, 2 Mar 2016 02:39:49 +0000 (02:39 +0000)]
Merge "Revert "Disable flaky 130-hprof test.""
Mathieu Chartier [Wed, 2 Mar 2016 01:40:55 +0000 (17:40 -0800)]
Revert "Disable flaky 130-hprof test."
Bug:
27337759
This reverts commit
2f0d3bc12f9ade80f4d3c21b7c4aad2cfe10f19e.
Mathieu Chartier [Wed, 2 Mar 2016 01:40:52 +0000 (01:40 +0000)]
Merge "Fix allocation tracking race"
Mathieu Chartier [Tue, 1 Mar 2016 02:13:38 +0000 (18:13 -0800)]
Fix allocation tracking race
Check if changed from uninstrumented to instrumented during GC for
alloc. If we changed, retry the allocation with kInstrumented = true.
Added stress test.
Bug:
27337759
Change-Id: Iaad7977693c9ed927f779a66b29cd58341a837da
Andreas Gampe [Tue, 1 Mar 2016 23:30:10 +0000 (23:30 +0000)]
Merge "Lower JIT thread priority"
David Brazdil [Tue, 1 Mar 2016 22:55:18 +0000 (22:55 +0000)]
Merge "ART: Fix overlapping instruction IDs in inliner"
David Brazdil [Mon, 29 Feb 2016 16:53:33 +0000 (16:53 +0000)]
ART: Fix overlapping instruction IDs in inliner
Inliner creates the inner graph so that it generates instruction IDs
higher than the outer graph. This was broken because the inliner
would create instructions in the outer graph before the inner graph
is inlined.
The bug cannot be triggered because the offending instruction would
share the same ID as the first inner HLocal, which is removed before
the inner graph is inlined. The added DCHECKs reveal the hidden problem
and make it safe for HLocals to be removed in the future.
Change-Id: I486eb0f3987e20c50cbec0fb06332229e07fbae9
Andreas Gampe [Tue, 1 Mar 2016 04:49:38 +0000 (20:49 -0800)]
Lower JIT thread priority
Modify the JIT thread to run at a lower priority in order to allow
UI-critical threads to get enough CPU time.
Bug:
27417985
(cherry picked from commit
e701f088f8fe3a2c1f16e2895402f26283f4bcc7)
Change-Id: I5b962a7970ae81dac9e01a8011128c538cd78e40
Nicolas Geoffray [Tue, 1 Mar 2016 22:18:18 +0000 (22:18 +0000)]
Merge "Revert "Use the interpreter as a heartbeat for the JIT.""
Nicolas Geoffray [Tue, 1 Mar 2016 22:18:02 +0000 (22:18 +0000)]
Revert "Use the interpreter as a heartbeat for the JIT."
Hits a DCHECK testing libcore.
art F 11973 12675 art/runtime/jit/jit_code_cache.cc:644] Check failed: it.second->GetProfilingInfo(sizeof(void*)) != nullptr
Bug:
27398183
Bug:
23128949
Bug:
26846185
This reverts commit
7273a5d045d3ceb3ff011ad65765356b69b155e8.
Change-Id: I6614a82e775ea71aa16f041313f67546db41eac8
Nicolas Geoffray [Tue, 1 Mar 2016 22:16:55 +0000 (22:16 +0000)]
Merge "Revert "Fix bogus interaction between code cache and instrumentation.""
Nicolas Geoffray [Tue, 1 Mar 2016 22:16:35 +0000 (22:16 +0000)]
Revert "Fix bogus interaction between code cache and instrumentation."
hits a DCHECK when testing libcore:
art F 11973 12675 art/runtime/jit/jit_code_cache.cc:644] Check failed: it.second->GetProfilingInfo(sizeof(void*)) != nullptr
This reverts commit
e9924b7d4fcafe7261233d2c16ebb73d7bb5e8e8.
Change-Id: I37d05991b9506a53a7c76738a7e4a6def1010958
Aart Bik [Tue, 1 Mar 2016 22:10:46 +0000 (22:10 +0000)]
Merge "Standby list for dyn bce in potentially infinite loops."
Aart Bik [Tue, 1 Mar 2016 18:39:25 +0000 (10:39 -0800)]
Standby list for dyn bce in potentially infinite loops.
Rationale:
The old code relied on "luck" to revisit basic blocks
after dynamic bce and incorporate all bounds checks
in potentially infinite loops that were "made" finite.
Now that revisiting has been removed completely, keeping
a standby list ensures all candidates are considered.
Change-Id: Ida3cf63be1307be6c2b0258d3e64b163f12be235
Nicolas Geoffray [Tue, 1 Mar 2016 18:51:27 +0000 (18:51 +0000)]
Merge "Fix bogus interaction between code cache and instrumentation."
Nicolas Geoffray [Tue, 1 Mar 2016 18:43:46 +0000 (18:43 +0000)]
Fix bogus interaction between code cache and instrumentation.
Change-Id: Icc314089ec1a05248b8994476d478a543e629e4d
Bill Buzbee [Tue, 1 Mar 2016 18:19:42 +0000 (18:19 +0000)]
Merge "Revert "Revert "Fast ART x86_64 interpretator"""
Aart Bik [Tue, 1 Mar 2016 17:18:37 +0000 (17:18 +0000)]
Merge "Fixed bug on incorrectly revisiting same block."
Bill Buzbee [Tue, 1 Mar 2016 15:35:07 +0000 (15:35 +0000)]
Merge "x86 Fast Interpreter: Fix CFI"
Nicolas Geoffray [Tue, 1 Mar 2016 15:17:42 +0000 (15:17 +0000)]
Merge "Use the interpreter as a heartbeat for the JIT."
Roland Levillain [Tue, 1 Mar 2016 14:38:42 +0000 (14:38 +0000)]
Merge "Fix the signature of the IndexOf entry point."
Nicolas Geoffray [Mon, 29 Feb 2016 15:35:39 +0000 (15:35 +0000)]
Use the interpreter as a heartbeat for the JIT.
When doing a partial code cache collection, update all entrypoints to
interpreter, so that the next full collection will remove code
that wasn't executed during that window.
bug:
27398183
bug:
23128949
bug:
26846185
Change-Id: I4423f5c4810dac183dc8973078bf218818745e80
Nicolas Geoffray [Tue, 1 Mar 2016 13:31:16 +0000 (13:31 +0000)]
Merge "Dump more information to diagnose problem."
Roland Levillain [Tue, 1 Mar 2016 13:19:49 +0000 (13:19 +0000)]
Merge "Optimizing: Do not depend on sharpening in test 577"
Nicolas Geoffray [Tue, 1 Mar 2016 12:18:47 +0000 (12:18 +0000)]
Dump more information to diagnose problem.
bug:
27424509
Change-Id: Id502cf408a7f117a2a891534f5c999d60f9370b1
Serguei Katkov [Tue, 1 Mar 2016 09:53:22 +0000 (15:53 +0600)]
x86 Fast Interpreter: Fix CFI
With this change gdb can fall through x86 Fast Interpreter frame.
Change-Id: Ia5efe0059ecbdb09491d37ab47367e222d29f1d3
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Roland Levillain [Tue, 1 Mar 2016 10:24:08 +0000 (10:24 +0000)]
Merge "Improve documentation about StringFactory.newStringFromChars."
Serguei Katkov [Tue, 1 Mar 2016 10:10:48 +0000 (16:10 +0600)]
Revert "Revert "Fast ART x86_64 interpretator""
CFI is updated. Now unwinder can fall through fast interpreter.
This reverts commit
c4a575f58007036ff3408b15c2ec48108add20f3.
Change-Id: Ibb0a2ef41e4d02ab0b4ecc4f030ba0e72971aa9d
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Nicolas Geoffray [Tue, 1 Mar 2016 09:30:56 +0000 (09:30 +0000)]
Merge "Revert "Disable symbolizing traces on volantis.""
Nicolas Geoffray [Tue, 1 Mar 2016 09:28:26 +0000 (09:28 +0000)]
Revert "Disable symbolizing traces on volantis."
Devices have been updated to M.
This reverts commit
95303c682bba971128950ef82c8f6c247917ffff.
Change-Id: Ib6620f88b939700e53af87d2003ea8bbe222e1bc
Nicolas Geoffray [Tue, 1 Mar 2016 09:10:43 +0000 (09:10 +0000)]
Merge "Disable flaky 130-hprof test."
Nicolas Geoffray [Tue, 1 Mar 2016 09:09:35 +0000 (09:09 +0000)]
Disable flaky 130-hprof test.
bug:
27337759
Change-Id: I167bd42ef539bce46978b07f755efd57bc61b2f2
Aart Bik [Mon, 29 Feb 2016 21:56:44 +0000 (13:56 -0800)]
Fixed bug on incorrectly revisiting same block.
Rationale:
Aart's fuzz tester found this particular bug, where
revisiting a block (after dynamic bce) would cause
static array length based bce to feed into itself
and thus incorrectly remove a needed bounds check.
bug=
27376274
Change-Id: I9163f283af355d444b4cec707f194fe2b67c2572
Bill Buzbee [Mon, 29 Feb 2016 18:54:10 +0000 (18:54 +0000)]
Merge "[MIPS] Add Fast Art interpreter for Mips32."
Mathieu Chartier [Mon, 29 Feb 2016 18:42:22 +0000 (18:42 +0000)]
Merge "Revert "Revert "Improve immune spaces logic"""
Mathieu Chartier [Sun, 28 Feb 2016 21:10:58 +0000 (13:10 -0800)]
Revert "Revert "Improve immune spaces logic""
Test was flaky due to missing guard page at the end of the region.
Bug:
27136196
This reverts commit
07dbbca0b42cb8da1811de8209b4a7d4becfc7b2.
Change-Id: I4eb345f34e66b8684cd71a7897e3a8caa2f84140
Roland Levillain [Mon, 29 Feb 2016 18:26:54 +0000 (18:26 +0000)]
Fix the signature of the IndexOf entry point.
The IndexOf entry point was declared as taking four
arguments (void*, uint32_t, uint32_t, uint32_t) whereas all
actual implementations use three arguments (void*, uint32_t,
uint32_t). As that fourth argument is not documented, drop
it from the intrinsic declaration to have it match the
implementations.
Change-Id: I65d747033192025ccd2b9a5e8f8ed05b77a21941
Roland Levillain [Mon, 29 Feb 2016 16:23:48 +0000 (16:23 +0000)]
Improve documentation about StringFactory.newStringFromChars.
Make it clear that the native method requires its third
argument to be non-null, and therefore that the intrinsics
do not need a null check for it.
Bug:
27378573
Change-Id: Id2f78ceb0f7674f1066bc3f216b738358ca25542
Nicolas Geoffray [Mon, 29 Feb 2016 14:30:18 +0000 (14:30 +0000)]
Merge "Bug fix for polymorphic inlining."
Nicolas Geoffray [Mon, 29 Feb 2016 14:30:00 +0000 (14:30 +0000)]
Merge "Cleanup polymorphic inlining to the same target."
Nicolas Geoffray [Thu, 25 Feb 2016 16:17:54 +0000 (16:17 +0000)]
Cleanup polymorphic inlining to the same target.
- Don't do expensive lookups, just fetch the ArtMethods from the
imtable or vtable.
- Don't perform the optimization if we may end up in the conflicting
trampoline.
bug:
27398183
Change-Id: I327c9f7c3a85d570a057ff8f18602e8e52402fdc
Nicolas Geoffray [Mon, 29 Feb 2016 11:46:58 +0000 (11:46 +0000)]
Bug fix for polymorphic inlining.
The code used to wrongly propagate try/catch information to
new blocks. Since it has the same logic as Hraph::InlineInto,
extract the code that updates loop and try/catch information
to blocks to a shared method.
bug:
27330865
bug:
27372101
bug:
27360329
Change-Id: I4386f724d8d412bde5bcc04fda6955bc3bacf5a9
Goran Jakovljevic [Mon, 29 Feb 2016 11:15:34 +0000 (12:15 +0100)]
Optimizing: Do not depend on sharpening in test 577
The sharpening may or may not remove the ArtMethod*
parameter, so the test must not depend on its absence.
This fixes the test 577 checker test on mips/mips64.
Change-Id: I01a2fc1bd2755804326a2ac284ee81e99fc91aa6
Nicolas Geoffray [Mon, 29 Feb 2016 09:49:55 +0000 (09:49 +0000)]
Merge "Disable symbolizing traces on volantis."
Nicolas Geoffray [Mon, 29 Feb 2016 09:35:26 +0000 (09:35 +0000)]
Disable symbolizing traces on volantis.
Change-Id: I1ba6b5a173e77e635d721dea8433cfcb8b0b787b
Nicolas Geoffray [Sat, 27 Feb 2016 11:30:49 +0000 (11:30 +0000)]
Merge "Revert "Improve immune spaces logic""
Nicolas Geoffray [Sat, 27 Feb 2016 11:30:25 +0000 (11:30 +0000)]
Revert "Improve immune spaces logic"
test is flaky. For example:
[ RUN ] ImmuneSpacesTest.MultiImage
art/runtime/gc/collector/immune_spaces_test.cc:351: Failure
Value of: space5->Limit()
Actual: 0xb6d72000
Expected: reinterpret_cast<uint8_t*>(spaces.GetLargestImmuneRegion().End())
Which is: 0xb6d93000
[ FAILED ] ImmuneSpacesTest.MultiImage (1076 ms)
Bug:
27136196
This reverts commit
17b8bce064fe4c0b29117abe489b7f8c2c950d43.
Change-Id: I9168421dd6ebabc271ed5c2cdbc5a27c211dcf5a
Mathieu Chartier [Sat, 27 Feb 2016 01:22:19 +0000 (01:22 +0000)]
Merge "Improve immune spaces logic"
Mathieu Chartier [Tue, 23 Feb 2016 03:32:16 +0000 (19:32 -0800)]
Improve immune spaces logic
We now properly include the largest continuous region with the most
image bytes. Oat bytes are considered as part of the region but are
not counted when comparing. This can result in more image bytes in
cases where large oat files were previously included for the immune
region.
Also added handling for adjacent oat files:
[image][image][oat][oat][space] will now properly be a single region.
Bug:
27136196
Change-Id: If2c002176dd32122e320e8a94551df46bd95256a
Andreas Gampe [Fri, 26 Feb 2016 23:44:02 +0000 (23:44 +0000)]
Merge "ART: Add unstarted-runtime functions"
Andreas Gampe [Mon, 22 Feb 2016 18:03:12 +0000 (10:03 -0800)]
ART: Add unstarted-runtime functions
Add more functions to allow compile-time initialization of
code.
Bug:
27248115
(cherry picked from commit
0866f4ed6338faa4a193b7e819fc7cd72bd7b0ae)
Change-Id: Iaf8d92deb73547ccd31c0d6dde68da3bc14c3985
Alex Light [Fri, 26 Feb 2016 23:35:49 +0000 (23:35 +0000)]
Merge "Support new JDWP InterfaceType.InvokeMethod command"
Mathieu Chartier [Fri, 26 Feb 2016 22:23:38 +0000 (22:23 +0000)]
Merge "Add and use loaded class profiling"
Mathieu Chartier [Thu, 10 Dec 2015 00:38:30 +0000 (16:38 -0800)]
Add and use loaded class profiling
Class profiling is a way to keep track of which classes are resolved.
From here the compiler can use this information to generate a smaller
app image.
TODO: Add tests for profile stuff.
Bug:
22858531
(cherry picked from commit
8913fc1a27df8cf3b37fd99e94d87f290591328e)
Change-Id: Ifcd09230cbdc266305bc1247e0d31e7920eb353e
Hiroshi Yamauchi [Fri, 26 Feb 2016 20:03:27 +0000 (20:03 +0000)]
Merge "Assembly TLAB allocation fast path for arm."
Alex Light [Fri, 26 Feb 2016 19:02:32 +0000 (19:02 +0000)]
Merge "Add JNI tests for lambdas"
Aart Bik [Fri, 26 Feb 2016 18:27:29 +0000 (18:27 +0000)]
Merge "Implement fp to bits methods as intrinsics."
Alex Light [Fri, 26 Feb 2016 00:13:54 +0000 (16:13 -0800)]
Add JNI tests for lambdas
Bug:
27259142
Change-Id: I2a1b31db85dc487c1e6a62609d4497c3a4d4d3a6
Aart Bik [Thu, 25 Feb 2016 19:32:32 +0000 (11:32 -0800)]
Implement fp to bits methods as intrinsics.
Rationale:
Better optimization, better performance.
Results on libcore benchmark:
Most gain is from moving the invariant call out of the loop
after we detect everything is a side-effect free intrinsic.
But generated code in general case is much cleaner too.
Before:
timeFloatToIntBits() in 181 ms.
timeFloatToRawIntBits() in 35 ms.
timeDoubleToLongBits() in 208 ms.
timeDoubleToRawLongBits() in 35 ms.
After:
timeFloatToIntBits() in 36 ms.
timeFloatToRawIntBits() in 35 ms.
timeDoubleToLongBits() in 35 ms.
timeDoubleToRawLongBits() in 34 ms.
bug=
11548336
Change-Id: I6e001bd3708e800bd75a82b8950fb3a0fc01766e
Vladimir Marko [Fri, 26 Feb 2016 16:39:57 +0000 (16:39 +0000)]
Merge "Optimizing: Reduce memory usage of HInstructions."
Vladimir Marko [Thu, 25 Feb 2016 11:37:38 +0000 (11:37 +0000)]
Optimizing: Reduce memory usage of HInstructions.
Pack narrow fields and flags into a single 32-bit field.
Change-Id: Ib2f7abf987caee0339018d21f0d498f8db63542d
Bill Buzbee [Fri, 26 Feb 2016 14:10:54 +0000 (14:10 +0000)]
Merge "Revert "Revert "ART: Support interpreter switching in x86 mterp"""
Nicolas Geoffray [Fri, 26 Feb 2016 13:43:56 +0000 (13:43 +0000)]
Merge "Optimizing: Add ARM and ARM64 intrinsics support for StringGetCharsNoCheck"
Nicolas Geoffray [Fri, 26 Feb 2016 08:57:18 +0000 (08:57 +0000)]
Merge "Revert "Fast ART x86_64 interpretator""
Nicolas Geoffray [Fri, 26 Feb 2016 08:56:45 +0000 (08:56 +0000)]
Revert "Fast ART x86_64 interpretator"
Fails gcstress configuration.
This reverts commit
c669beb798e273dd3d44cfa6a7a95ff90eba7209.
Change-Id: Ifac92471f91a116fc271d0dde8356fbbb0a08048
Douglas Leung [Fri, 26 Feb 2016 04:05:47 +0000 (20:05 -0800)]
[MIPS] Add Fast Art interpreter for Mips32.
Change-Id: I6b9714dc8c01b8c9080bcba175faec1d2de08f8f
Tim Zhang [Tue, 19 Jan 2016 15:39:24 +0000 (23:39 +0800)]
Optimizing: Add ARM and ARM64 intrinsics support for StringGetCharsNoCheck
This change refers to x86 implementation of StringGetCharsNoCheck and
arm implementation of SystemArrayCopy.
Change-Id: I1cb86854a2a8fa8736af7726b8efacd00d416f6f
Mathieu Chartier [Fri, 26 Feb 2016 00:44:06 +0000 (00:44 +0000)]
Merge "Add lz4hc image compression format"
Bill Buzbee [Thu, 25 Feb 2016 23:18:19 +0000 (23:18 +0000)]
Merge "Fast ART x86_64 interpretator"
Mathieu Chartier [Thu, 25 Feb 2016 21:52:10 +0000 (13:52 -0800)]
Add lz4hc image compression format
Smaller than lz4 and decompresses at the same speed. Compression is
a bit slower.
Example saves on old FB APK:
Uncompressed:
44748800 bytes
LZ4:
12443648 bytes
LZ4HC:
11055104 bytes
Generating the image slows down by ~1s per 20MB of image due to
slower compression. Decompression is about the same speed but there
should be a slight speedup since less data needs to be read from
flash.
Added test.
Bug:
22858531
Change-Id: Ib2704305b9bec5b0ba3b1e871f59f4eedff330b7
Hiroshi Yamauchi [Fri, 11 Dec 2015 23:46:19 +0000 (15:46 -0800)]
Assembly TLAB allocation fast path for arm.
Speedup (GSS GC with TLAB on N5):
BinaryTrees: 1872 -> 796 ms (-57%)
MemAllocTest: 2522 -> 2219 ms (-12%)
Bug:
9986565
Change-Id: Icb9d1259461f3abe83a4a82c8aff911937eaf57d
Mathieu Chartier [Thu, 25 Feb 2016 21:55:13 +0000 (21:55 +0000)]
Merge "Add a decompression scoped timing for image loading"
Mingyao Yang [Thu, 25 Feb 2016 20:55:22 +0000 (20:55 +0000)]
Merge "AOT compile framework code as non-debuggable"
Mathieu Chartier [Thu, 25 Feb 2016 20:28:40 +0000 (12:28 -0800)]
Add a decompression scoped timing for image loading
Shows up in systrace.
Bug:
22858531
Change-Id: Ic165cd0106dd019c002b600d37560b71b4e351d1
Vladimir Marko [Thu, 25 Feb 2016 20:26:31 +0000 (20:26 +0000)]
Merge "Add StrictMath.round tests for large integers."
Aart Bik [Thu, 25 Feb 2016 18:48:50 +0000 (18:48 +0000)]
Merge "Recognize for (int i = 0; i != x.length; i++) loops"
Bill Buzbee [Thu, 25 Feb 2016 17:37:46 +0000 (17:37 +0000)]
Revert "Revert "ART: Support interpreter switching in x86 mterp""
Fixes the invoke template. Previously, it was permitting
an interpreter switch *before* advancing the Dalvik PC.
This meant that on a switch, the invoke would be interpreted
twice.
This reverts commit
a14bf4460268064e0adc4bb210d237209be33eaf.
Change-Id: I285d19077c8dd58ce607a4c42ed20549942fab45
Sebastien Hertz [Thu, 25 Feb 2016 18:36:09 +0000 (18:36 +0000)]
Merge "Disable test 097-duplicate-method for investigation"
Sebastien Hertz [Thu, 25 Feb 2016 17:50:23 +0000 (18:50 +0100)]
Disable test 097-duplicate-method for investigation
Broekn by latest Jack release (1.2-a19)
Bug:
27358065
Change-Id: Ifd66522bde4c5b93435c6d9ab11ebb407f842df6
Vladimir Marko [Thu, 25 Feb 2016 17:50:41 +0000 (17:50 +0000)]
Add StrictMath.round tests for large integers.
This is a follow-up to
https://android-review.googlesource.com/203175 .
Bug:
27166445
Change-Id: I850999c782017650017fad7e27c83b60b57edaf9
Alex Light [Thu, 25 Feb 2016 00:35:59 +0000 (16:35 -0800)]
Support new JDWP InterfaceType.InvokeMethod command
This command is used to invoke static methods in interfaces.
Bug:
27218415
Change-Id: Ie4dc1876a20567240267f309dc18f1aec2c1b4c2
Aart Bik [Thu, 25 Feb 2016 17:38:08 +0000 (17:38 +0000)]
Merge "Make sure constantIndexing2 is optimized with DEOPT."
Aart Bik [Wed, 24 Feb 2016 22:17:53 +0000 (14:17 -0800)]
Recognize for (int i = 0; i != x.length; i++) loops
Rationale:
Idiom occurs in real-life and is very straightforwardly
recognized by existing induction/range machinery.
Change-Id: I965a16e9de72f3523ea5023d30ed1c4e47ed5010
Nicolas Geoffray [Thu, 25 Feb 2016 16:46:48 +0000 (16:46 +0000)]
Merge "Dump the number of OSR compiled code."
Roland Levillain [Thu, 25 Feb 2016 16:36:21 +0000 (16:36 +0000)]
Merge "Optimizing: ARM64 negated bitwise operations simplification"
Kevin Brodsky [Mon, 11 Jan 2016 13:43:31 +0000 (13:43 +0000)]
Optimizing: ARM64 negated bitwise operations simplification
Use negated instructions on ARM64 to replace [bitwise operation + not]
patterns, that is:
a & ~b (BIC)
a | ~b (ORN)
a ^ ~b (EON)
The simplification only happens if the Not is only used by the bitwise
operation. It does not happen if both inputs are Not's (this should be
handled by a generic simplification applying De Morgan's laws).
Change-Id: I0e112b23fd8b8e10f09bfeff5994508a8ff96e9c
Bill Buzbee [Thu, 25 Feb 2016 15:54:27 +0000 (15:54 +0000)]
Merge "ART: Profile all branches for on-stack replacement"
David Srbecky [Thu, 25 Feb 2016 15:45:58 +0000 (15:45 +0000)]
Merge "Verify encoded stack maps in debug builds."
Vladimir Marko [Thu, 25 Feb 2016 15:37:05 +0000 (15:37 +0000)]
Merge "Revert "Revert "ARM/ARM64: Extend support of instruction combining."""
David Srbecky [Thu, 25 Feb 2016 15:15:58 +0000 (15:15 +0000)]
Merge "Implement << operator for DexRegisterLocation::Kind."
David Srbecky [Wed, 24 Feb 2016 16:39:26 +0000 (16:39 +0000)]
Verify encoded stack maps in debug builds.
Read all stack map data back after we write it and DCHECK the content.
Change-Id: Ia679594ac9e5805f6d4c56686030af153b45ea8b
David Srbecky [Thu, 25 Feb 2016 13:23:56 +0000 (13:23 +0000)]
Implement << operator for DexRegisterLocation::Kind.
This makes it comparable in DCHECK_EQ and similar methods.
Change-Id: I6b5b237be89325850ae6860d011fd6741189ab01
buzbee [Wed, 24 Feb 2016 22:24:24 +0000 (14:24 -0800)]
ART: Profile all branches for on-stack replacement
Change the switch, goto and mterp interpreters to profile
not-taken as well as taken branches. This allows for on-stack
replacement when the cfg has been rearranged such that the loop
header was originally the fallthrough of a Dalvik byte-code branch.
Note that this increases the already-heavy cost of branch profiling.
Measuring on a Nexus 6 using a very branchy benchmark (logic subtest
from Caffeinemark), we see:
No profiling Taken only Taken & not-taken
mterp 9728 3434 2384
C++ goto 3914 2422 2037
C++ switch 2986 2411 2112
As measured, the cost of branch profiling is dominating execution
time. This will be addressed in follow-up CLs.
Change-Id: Ibc858f317398dd991ed8e4f3c3d72bd4c9a60594
Nicolas Geoffray [Thu, 25 Feb 2016 13:35:36 +0000 (13:35 +0000)]
Merge "Revert "ART: Support interpreter switching in x86 mterp""
Nicolas Geoffray [Thu, 25 Feb 2016 13:34:18 +0000 (13:34 +0000)]
Revert "ART: Support interpreter switching in x86 mterp"
Fails:
test-art-host-run-test-ndebug-prebuild-interpreter-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-304-method-tracing32
test-art-host-run-test-ndebug-prebuild-interpreter-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-545-tracing-and-jit32
test-art-host-run-test-ndebug-prebuild-interpreter-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-570-checker-osr32
test-art-host-run-test-ndebug-prebuild-interpreter-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-802-deoptimization32
This reverts commit
4429b110c7b4d9bda2c31b4df257e840831d01f6.
Change-Id: I30c42e22b44bb9c9bbd6efaedbc97516d575bf11
Nicolas Geoffray [Thu, 25 Feb 2016 13:27:47 +0000 (13:27 +0000)]
Dump the number of OSR compiled code.
Change-Id: I20efc80e8556da8220dab92c3a7947f883d48cf8
Nicolas Geoffray [Thu, 25 Feb 2016 12:43:58 +0000 (12:43 +0000)]
Merge "Split 530-checker-loops to please our run-test file size limit."
Bill Buzbee [Thu, 25 Feb 2016 12:43:23 +0000 (12:43 +0000)]
Merge "ART: Support interpreter switching in x86 mterp"
Nicolas Geoffray [Thu, 25 Feb 2016 12:40:27 +0000 (12:40 +0000)]
Split 530-checker-loops to please our run-test file size limit.
Change-Id: Ib03303435918b333691625f3999b937072f8ec31
Nicolas Geoffray [Thu, 25 Feb 2016 10:21:34 +0000 (10:21 +0000)]
Merge "Forgot to initialize JIT memory use fields."