OSDN Git Service
Mathieu Chartier [Thu, 18 Feb 2016 02:02:40 +0000 (18:02 -0800)]
Don't pass in oat file name to NativeLocationInImage
We already have the oat file name stored in the relocation, using
the one passed in for the image info can cause a mismatch.
I suspect this fixes a bug repated to copied methods where there
was a oat file name mismatch. When we assign the native object
relocation for the methods of a class, we use the dex cache from
that class.
However, we use method's declaring class in NativeLocationVisitor
by using ArtMethod::GetDexCache. This could result in using the
wrong ImageInfo if the declaring class is in another image.
Change-Id: I753207f7b773fac182f84ba57c640c09f9ce911f
Hiroshi Yamauchi [Fri, 19 Feb 2016 00:17:37 +0000 (00:17 +0000)]
Merge "Disable read barriers in GC VisitReferences calls."
Hiroshi Yamauchi [Wed, 17 Feb 2016 21:29:59 +0000 (13:29 -0800)]
Disable read barriers in GC VisitReferences calls.
It's safe to disable read barriers in the CC collector's
VisitReferences calls. It speeds up the collector by some amount,
eg. Ritzperf EAAC GC time on N5 decreases by ~4.2%.
This is based on Mathieu Chartier's idea.
Bug:
12687968
Change-Id: I884dee7018f92761fad54269f4cd01db4fa82f2a
Alex Light [Thu, 18 Feb 2016 21:13:19 +0000 (21:13 +0000)]
Merge "Fix issue with copied methods not being checked."
Nicolas Geoffray [Thu, 18 Feb 2016 16:56:42 +0000 (16:56 +0000)]
Merge "Fix build aflter conflicting changes got in."
Nicolas Geoffray [Thu, 18 Feb 2016 16:55:42 +0000 (16:55 +0000)]
Fix build aflter conflicting changes got in.
Change-Id: Ia3846e9a0dad137fe797bf3f2ece0cb78c106ec0
Nicolas Geoffray [Thu, 18 Feb 2016 16:33:37 +0000 (16:33 +0000)]
Merge "Small inlining improvements."
Calin Juravle [Thu, 18 Feb 2016 16:16:34 +0000 (16:16 +0000)]
Merge "Add statistics support for some optimizations"
Jean-Philippe Halimi [Thu, 18 Feb 2016 15:42:03 +0000 (16:42 +0100)]
Add statistics support for some optimizations
This patch adds support for the --dump-stats facility with some
optimizations
and fixes all build issues introduced by the patch:
I68751b119a030952a11057cb651a3c63e87e73ea (which got reverted)
Change-Id: I5af1f2a8cced0a1a55c2bb4d8c88e6f0a24ec879
Signed-off-by: Jean-Philippe Halimi <jean-philippe.halimi@intel.com>
Nicolas Geoffray [Thu, 18 Feb 2016 15:56:59 +0000 (15:56 +0000)]
Merge "Implement polymorphic inlining."
Nicolas Geoffray [Thu, 18 Feb 2016 14:43:42 +0000 (14:43 +0000)]
Small inlining improvements.
- Use the type_index in the current dex file for classes not
defined in the current dex file.
- Make the loading of the vtable field of a class have no side effects
to enable gvn'ing it.
Note that those improvements only affect the JIT, where we don't have
checker support.
Change-Id: I519f52bd8270f2b828f0920a1214da33cf788f41
Nicolas Geoffray [Thu, 18 Feb 2016 11:12:31 +0000 (11:12 +0000)]
Implement polymorphic inlining.
For example, before:
HInvokeVirtual
After:
If (receiver == Foo) {
// inlined code.
} else if (receiver == Bar) {
// inlined code
} else {
// HInvokeVirtual or HDeoptimize(receiver != Baz)
}
Change-Id: I5ce305aef8f39f8294bf2b2bcfe60e0dddcfdbec
Roland Levillain [Thu, 18 Feb 2016 11:23:43 +0000 (11:23 +0000)]
Merge "Implement Optimizing's constant folding as a visitor."
Tamas Berghammer [Thu, 18 Feb 2016 10:40:13 +0000 (10:40 +0000)]
Merge "Mark __jit_debug_register_code as a unique symbol on aarch64"
Nicolas Geoffray [Thu, 18 Feb 2016 10:37:33 +0000 (10:37 +0000)]
Merge "Remove string init map."
Nicolas Geoffray [Tue, 16 Feb 2016 18:42:15 +0000 (18:42 +0000)]
Remove string init map.
Partial revert of the String init change.
- Make Quick bailout in the presence of String allocation.
- Rely on the compiler for knowing when dex registers alias.
bug:
27173201
Change-Id: I0bf58ba3825c71cef110b53f3a0a6f567cb2ef9a
Aart Bik [Thu, 18 Feb 2016 00:06:17 +0000 (00:06 +0000)]
Merge "Set bias on != comparison for isNaN."
Aart Bik [Wed, 17 Feb 2016 23:13:56 +0000 (15:13 -0800)]
Set bias on != comparison for isNaN.
Change-Id: I83969ecf7252b5e001bdd501c4ca31e7d0608854
Mathieu Chartier [Wed, 17 Feb 2016 22:13:46 +0000 (22:13 +0000)]
Merge "Clean up register line"
Aart Bik [Wed, 17 Feb 2016 22:03:15 +0000 (22:03 +0000)]
Merge "Implement isNaN intrinsic through HIR equivalent."
Alex Light [Wed, 17 Feb 2016 19:59:05 +0000 (11:59 -0800)]
Fix issue with copied methods not being checked.
In several places we were using IsMiranda to check if a method is
copied. This misses cases involving default methods.
Bug:
27216437
Change-Id: I8c800e3e622a9c0ca0f8752c3d5202f433af9a1c
Aart Bik [Wed, 17 Feb 2016 18:41:50 +0000 (10:41 -0800)]
Implement isNaN intrinsic through HIR equivalent.
Rationale:
Efficient implementation on all platforms.
Subject to better compiler optimizations.
Change-Id: Ie8876bf5943cbe1138491a25d32ee9fee554043c
Mathieu Chartier [Wed, 17 Feb 2016 19:04:20 +0000 (11:04 -0800)]
Clean up register line
Fixed formatting and style. Also added proper null handling for arena
deleter.
Change-Id: I6a44cb29ca6ad17b35e18dc6be1d12416f211631
Mathieu Chartier [Wed, 17 Feb 2016 18:45:26 +0000 (18:45 +0000)]
Merge "Only visit pointer arrays once during image relocation"
Mathieu Chartier [Wed, 17 Feb 2016 01:16:01 +0000 (17:16 -0800)]
Only visit pointer arrays once during image relocation
Previously they could get visited twice, this caused corruption of
the app image if a pointer was updated twice.
Bug:
22858531
Change-Id: I1f1ba1ba5dc205be07dba51bc6ce7a825c82b33a
Roland Levillain [Thu, 6 Aug 2015 14:46:02 +0000 (15:46 +0100)]
Implement Optimizing's constant folding as a visitor.
Refactor the logic of art::HConstantFolding::Run into a new
visitor, art::HConstantFoldingVisitor.
Change-Id: Id8d3c3826f6dff6cc2d18a01f6c48d79bde483b3
Vladimir Marko [Wed, 17 Feb 2016 17:46:30 +0000 (17:46 +0000)]
Merge "Revert "Allow method references across oat files for multi-image.""
Vladimir Marko [Wed, 17 Feb 2016 17:46:10 +0000 (17:46 +0000)]
Revert "Allow method references across oat files for multi-image."
Breaks Quick tests.
This reverts commit
6065402316da2b51eed5fc34cffbd991766bd408.
Change-Id: I8a5469ba7cea5f46b85cb489b3e0ef06ed548f03
Roland Levillain [Wed, 17 Feb 2016 16:56:49 +0000 (16:56 +0000)]
Merge "Fix uses of art::HCompare::IsGtBias on MIPS32 and MIPS64."
Roland Levillain [Wed, 17 Feb 2016 16:49:37 +0000 (16:49 +0000)]
Fix uses of art::HCompare::IsGtBias on MIPS32 and MIPS64.
Do not call this method on non floating-point HCompare
instructions.
Change-Id: I262ab23f48d32295641063f897dca02cb92eb2e2
Vladimir Marko [Wed, 17 Feb 2016 16:50:13 +0000 (16:50 +0000)]
Merge "Allow method references across oat files for multi-image."
Vladimir Marko [Tue, 16 Feb 2016 12:50:23 +0000 (12:50 +0000)]
Allow method references across oat files for multi-image.
These were disabled because we didn't have sufficient
information about the multi-image layout when processing
link-time patches in OatWriter. This CL refactors the
ELF file creation so that the information is available.
Change-Id: I6f2e8dc8572d143c72cc2693bb0ba4fd76f889ab
Sebastien Hertz [Wed, 17 Feb 2016 16:24:52 +0000 (16:24 +0000)]
Merge "Build jdwp tests with Jack in vogar"
Sebastien Hertz [Wed, 17 Feb 2016 16:05:52 +0000 (17:05 +0100)]
Build jdwp tests with Jack in vogar
These tests are compiled with Jack in the CTS so we do the same
with vogar now.
Bug:
27218415
Change-Id: I69b86e02a6532c1885c4d40f0768bf2b353c9569
Roland Levillain [Wed, 17 Feb 2016 15:44:04 +0000 (15:44 +0000)]
Merge "Extend constant folding to float and double operations."
David Srbecky [Wed, 17 Feb 2016 15:34:16 +0000 (15:34 +0000)]
Merge "Add simple deduplication for .debug_ranges."
Roland Levillain [Wed, 17 Feb 2016 14:47:03 +0000 (14:47 +0000)]
Merge "MIPS32: peek*/poke*, and String.charAt intrinsics."
Roland Levillain [Tue, 16 Feb 2016 12:21:02 +0000 (12:21 +0000)]
Extend constant folding to float and double operations.
Change-Id: I2837064b2ceea587bc171fc520507f13355292c6
Nicolas Geoffray [Wed, 17 Feb 2016 12:09:53 +0000 (12:09 +0000)]
Merge "Be a bit smarter with JIT code triggering deoptimization."
Nicolas Geoffray [Wed, 17 Feb 2016 11:31:49 +0000 (11:31 +0000)]
Be a bit smarter with JIT code triggering deoptimization.
Do not re-use an OSR method that triggered deoptimization.
Also add a stack overflow check before doing OSR.
bug:
27094810
Change-Id: I6ff6a7fb9b3df9b7c0ff37e3610595efa70ad067
David Brazdil [Wed, 17 Feb 2016 11:06:40 +0000 (11:06 +0000)]
Merge "Support CMOV for x86 Select"
Nicolas Geoffray [Wed, 17 Feb 2016 10:17:18 +0000 (10:17 +0000)]
Merge "We also need to delete osr entries when deleting ArtMethod."
Vladimir Marko [Wed, 17 Feb 2016 10:09:00 +0000 (10:09 +0000)]
Merge "dex2oat: Show memory usage values in bytes"
Nicolas Geoffray [Wed, 17 Feb 2016 09:49:19 +0000 (09:49 +0000)]
We also need to delete osr entries when deleting ArtMethod.
In the unfortunate event an ArtMethod gets allocated at the
same location as an old (deleted) ArtMethod, the osr_code_map_
lookup will succeed and return garbage. So we need to delete
entries in the osr_code_map_ when an ArtMethod gets deleted.
This should finally fix:
dalvik.system.DexClassLoaderTest#test_twoJar_diff_getResourceAsStream
Change-Id: I7c8b775c3376a6cfcb907f09b783e393967ad82d
Mathieu Chartier [Tue, 16 Feb 2016 23:12:02 +0000 (23:12 +0000)]
Merge "Add custom arena deleter for RegisterLine"
Mathieu Chartier [Tue, 16 Feb 2016 22:06:35 +0000 (14:06 -0800)]
Add custom arena deleter for RegisterLine
Previously it protected by using sizeof(RegisterLine) but this was
not accurate due to register lines being variable sized.
Bug:
27156726
Change-Id: Ia4b134b85a2e61993d17bd4f0eff60c89c164dc3
Richard Uhler [Tue, 16 Feb 2016 16:56:10 +0000 (16:56 +0000)]
Merge "ahat: annotate char[] objects with their string values."
Nicolas Geoffray [Tue, 16 Feb 2016 16:54:19 +0000 (16:54 +0000)]
Merge "Refactor the inliner."
Nicolas Geoffray [Tue, 16 Feb 2016 16:54:00 +0000 (16:54 +0000)]
Merge "X86: Allow long compares to stack operands"
Richard Uhler [Thu, 11 Feb 2016 16:48:24 +0000 (08:48 -0800)]
ahat: annotate char[] objects with their string values.
Bug:
26987597
Change-Id: I1b0bf711c642f4b8a7fe56f0cd27496761db4147
Nicolas Geoffray [Tue, 16 Feb 2016 15:37:12 +0000 (15:37 +0000)]
Refactor the inliner.
In preparation for more polymorphic inlining, refactor the inliner
a bit.
Change-Id: Ie3fd6c1ef205f1089989c67a527e6f57ff3c8b5d
Nicolas Geoffray [Tue, 16 Feb 2016 15:43:27 +0000 (15:43 +0000)]
Merge "HInvokeStaticOrDirect may not have a special input."
Mark Mendell [Tue, 16 Feb 2016 15:41:46 +0000 (10:41 -0500)]
X86: Allow long compares to stack operands
There is no need to force the RHS stack operand into a register for a
long comparison.
Change-Id: Ie86851a54ec2dc9a9f61443e59219a8994dc01bb
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Yohann Roussel [Tue, 16 Feb 2016 15:37:09 +0000 (15:37 +0000)]
Merge "Remove some outdated comments in art tests"
Nicolas Geoffray [Tue, 16 Feb 2016 15:33:54 +0000 (15:33 +0000)]
HInvokeStaticOrDirect may not have a special input.
For irreducible loops, we disable the generation of
HX86ComputeBaseMethodAddress, so intrinsics code should not assume
it's there.
bug:
27149923
Change-Id: I78ba0ca7aefa4033227c77ba438b6eaca53dadd9
Yohann Roussel [Tue, 16 Feb 2016 15:25:09 +0000 (16:25 +0100)]
Remove some outdated comments in art tests
Change-Id: I5604bd8d9a433eb513a516b1839b55c88c329329
Mark Mendell [Sat, 6 Feb 2016 18:58:35 +0000 (13:58 -0500)]
Support CMOV for x86 Select
If possible, generate CMOV to implement HSelect. Tricky cases are a
long or FP condition (no single CC generated), FP inputs (no FP CMOV)
and when the condition is a boolean or not emitted at the use site.
In these cases, keep using the existing HSelect code.
Change-Id: I4ff1e152b8ef126fbbabeb3316e9e2b6a6b74aeb
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Yohann Roussel [Tue, 16 Feb 2016 15:10:35 +0000 (15:10 +0000)]
Merge "Remove usages of jill.jar, use jack instead"
Yohann Roussel [Tue, 19 Jan 2016 16:07:18 +0000 (17:07 +0100)]
Remove usages of jill.jar, use jack instead
Change-Id: Icb403ee6fb5bf287d2b72bb253b683b1d95f4e07
Nicolas Geoffray [Tue, 16 Feb 2016 13:53:53 +0000 (13:53 +0000)]
Merge "Follow-up to OSR change."
Nicolas Geoffray [Tue, 16 Feb 2016 12:06:05 +0000 (12:06 +0000)]
Follow-up to OSR change.
Change-Id: I99677697178273490201a22aba21dfe5b8e2c8ba
Calin Juravle [Tue, 16 Feb 2016 11:54:11 +0000 (11:54 +0000)]
Merge "Remove code cache check from native bridge run-test"
Calin Juravle [Mon, 15 Feb 2016 18:35:22 +0000 (18:35 +0000)]
Remove code cache check from native bridge run-test
Every now and them the native bridge run-test failed because the code
cache cannot be found. I suspect a temporary I/O issue when stat-ing the
directory. However I could not verify yet that's actually the cause.
Native bridge can work without a code_cache so we can relax the test
until we figure out the flakiness.
Bug:
27189715
Change-Id: I2ad3f93e80c0e2df89adf1d9d2afe1087c10af08
David Srbecky [Tue, 16 Feb 2016 11:37:37 +0000 (11:37 +0000)]
Merge "Change how DWARF detects end of prologue."
Nicolas Geoffray [Tue, 16 Feb 2016 11:31:24 +0000 (11:31 +0000)]
Merge "Fix test by checking if we're using JIT."
Nicolas Geoffray [Tue, 16 Feb 2016 11:30:48 +0000 (11:30 +0000)]
Fix test by checking if we're using JIT.
Change-Id: Ifa98815ee2f8af4f338c9469f5afd74fc01022eb
David Srbecky [Tue, 9 Feb 2016 18:16:35 +0000 (18:16 +0000)]
Change how DWARF detects end of prologue.
Instead of ignoring stack map without dex register maps altogether,
explicitly calculate end of prologue as first stack map which has
dex register maps. This gives us more line number mappings.
Change-Id: I643cf0f9daf9762d894fbc94f5ff981ef6c0583b
David Srbecky [Wed, 10 Feb 2016 14:35:34 +0000 (14:35 +0000)]
Add simple deduplication for .debug_ranges.
Variables with same scope can usually share .debug_ranges entries.
Change-Id: I855f456782afdcc8ac5f622365d62ba8950a5c95
Tamas Berghammer [Tue, 16 Feb 2016 11:04:37 +0000 (11:04 +0000)]
Merge "Revert "Revert "Make it possible to enable native debugging through debug flags"""
David Srbecky [Tue, 16 Feb 2016 11:00:39 +0000 (11:00 +0000)]
Merge "Fill some gaps in .debug_loc."
David Srbecky [Tue, 16 Feb 2016 10:59:16 +0000 (10:59 +0000)]
Merge "Temporarily disable compressed CFI tests."
Nicolas Geoffray [Tue, 16 Feb 2016 10:53:02 +0000 (10:53 +0000)]
Merge "Re-enable OSR."
Nicolas Geoffray [Tue, 16 Feb 2016 10:03:44 +0000 (10:03 +0000)]
Re-enable OSR.
1) Fix flaky test by doing explicit ProfilingInfo allocation,
and OSR compilation instead of relying on the system. Also
make sure the method $noinline$inlineCache always starts
with the interpreter, as otherwise we would infinite loop.
2) Ensure the thread doing the OSR cannot be suspended once it
holds an OSR method, as otherwise the jit code cache could
delete the method before the thread had a chance to jump to it.
Change-Id: Ic0dee181a7b23260419a94a7d7405f150433d31a
David Srbecky [Tue, 16 Feb 2016 09:56:41 +0000 (09:56 +0000)]
Temporarily disable compressed CFI tests.
Since the support in libunwind has been temporarily disabled.
The non-compressed CFI test still works.
Bug:
27172087
Change-Id: Ic0e088827122014f13ae2086c766fc7c01b21ea1
Vladimir Marko [Tue, 16 Feb 2016 09:42:31 +0000 (09:42 +0000)]
Merge "Optimizing: Use range-based loops in BCE."
David Srbecky [Tue, 16 Feb 2016 09:34:44 +0000 (09:34 +0000)]
Merge "Let the CFI test communicate via stdout rather than arbitrary sleep."
Vladimir Marko [Mon, 15 Feb 2016 17:54:56 +0000 (17:54 +0000)]
Optimizing: Use range-based loops in BCE.
Change-Id: Ib7cbc6dcbdf61d0b115e6b872914cff3687ad6e4
Vladimir Marko [Mon, 15 Feb 2016 18:39:47 +0000 (18:39 +0000)]
Merge "Optimizing: Remove unnecessary And before TypeConversion."
Tamas Berghammer [Fri, 12 Feb 2016 16:29:00 +0000 (16:29 +0000)]
Revert "Revert "Make it possible to enable native debugging through debug flags""
This reverts commit
3a98aae1b9b20bc78dc5e05d2e60cb1d0072db02.
* Add support for a new debug flag disabling the optimizations in
the compiler and enable the generation of some additional debug
info (--native-debuggable).
* Ignore the content of the oat files if force JIT is enabled so
the runtime ignores the AOT-ed code what doesn't contain any
debug info.
Time measurements on a Nexus 5 with running:
am start -n com.facebook.katana/com.facebook.katana.LoginActivity -W
Before change: | AVG | DEV
--------------------------------------
ThisTime: 549 492 512 511 | 516 | 24
TotalTime: 549 492 512 511 | 516 | 24
WaitTime: 662 511 528 526 | 557 | 71
After change: | AVG | DEV
--------------------------------------
ThisTime: 530 467 503 544 | 511 | 34
TotalTime: 530 467 503 544 | 511 | 34
WaitTime: 551 497 536 583 | 541 | 36
Based on the numbers the speed impact of the change is less then the
accuracy of the measurement and it is also negligible.
The minor speed improvement displayed in the measurements are just
the cause of the variance of the measurement and not caused by this
change.
Change-Id: Ibf7294bfd14f8632a0fdeb27a5b90bfe5037d085
David Brazdil [Mon, 15 Feb 2016 18:24:16 +0000 (18:24 +0000)]
Merge "Fix broken tests"
David Brazdil [Mon, 15 Feb 2016 18:20:01 +0000 (18:20 +0000)]
Fix broken tests
Change-Id: I9d0f1064e8cd63045283445946c46594a50d4b84
Vladimir Marko [Mon, 15 Feb 2016 17:33:36 +0000 (17:33 +0000)]
Merge "ART: Fix ArenaStack::AllocWithMemoryTool()."
Vladimir Marko [Mon, 15 Feb 2016 10:13:11 +0000 (10:13 +0000)]
ART: Fix ArenaStack::AllocWithMemoryTool().
MEMORY_TOOL_MAKE_NOACCESS() takes the size of the address
range as the second argument, not the end the range.
Bug:
27156726
Change-Id: I05c8224a1d3c619919b203f407fb770c7c49cc9f
David Brazdil [Mon, 15 Feb 2016 17:15:21 +0000 (17:15 +0000)]
Merge "Fix lint error"
David Srbecky [Mon, 15 Feb 2016 16:54:34 +0000 (16:54 +0000)]
Let the CFI test communicate via stdout rather than arbitrary sleep.
I suspect the gcstress test might have been flaky due to the sleep not
being long enough and I would like to avoid just arbitrarily increasing it.
Change-Id: I5d4e0be35aa9f48b66167df04b8a539b21787053
David Brazdil [Mon, 15 Feb 2016 17:14:31 +0000 (17:14 +0000)]
Fix lint error
Change-Id: I6f7785abece7ead31b4737fc6b54712c26582e2b
Nicolas Geoffray [Mon, 15 Feb 2016 16:32:16 +0000 (16:32 +0000)]
Merge "Expect less in the presence of a string init call."
Nicolas Geoffray [Mon, 15 Feb 2016 16:29:37 +0000 (16:29 +0000)]
Merge "Add an option to disable native stack dumping on SIGQUIT."
Nicolas Geoffray [Mon, 15 Feb 2016 13:05:16 +0000 (13:05 +0000)]
Add an option to disable native stack dumping on SIGQUIT.
Some of our (stress) run-tests do ANR dumping, which end up
stressing libunwind, that has known problems. To avoid getting
flakes due to libunwind, disable native stack dumping on SIGQUIT
for our run-tests.
bug:
27185632
bug:
24664297
Change-Id: I69085e48db903d6240448d71666ae2dcd091922e
Nicolas Geoffray [Mon, 15 Feb 2016 15:56:11 +0000 (15:56 +0000)]
Expect less in the presence of a string init call.
The compiler currently relies on the dex cache being populated
for doing proper type propagation. If it hasn't, we may end up in the
situation where the DexMethodInliner has recognized a String.<init> call
(because DexMethodInliner only looks at signatures, and does not resolve
types), but the graph builder doesn't see a type and assume it needs
to do access checks and clinit checks on it.
Change-Id: Id79313b0610b127909e3e057305b6632b0b172f7
David Brazdil [Mon, 15 Feb 2016 16:12:32 +0000 (16:12 +0000)]
Merge "ART: Run SsaBuilder from HGraphBuilder"
David Brazdil [Mon, 15 Feb 2016 15:53:55 +0000 (15:53 +0000)]
Merge "ART: Implement HSelect with CSEL/FCSEL on arm64"
Vladimir Marko [Mon, 15 Feb 2016 15:39:47 +0000 (15:39 +0000)]
Merge "Optimizing: Simplify consecutive type conversions."
Vladimir Marko [Fri, 12 Feb 2016 16:53:57 +0000 (16:53 +0000)]
Optimizing: Remove unnecessary And before TypeConversion.
For example `(byte) (x & 0xff)` doesn't need the `& 0xff`.
Bug:
23965701
Change-Id: I5fc8419491aff2cdc7074451e74e873b5f582d41
Vladimir Marko [Fri, 12 Feb 2016 12:06:05 +0000 (12:06 +0000)]
Optimizing: Simplify consecutive type conversions.
Merge two consecutive type conversions to one if the result
of such merged conversion is guaranteed to be the same and
remove all implicit conversions, not just conversions to the
same type. Improve codegens to handle conversions from long
to integral types smaller than int.
This will make it easier to simplify `(byte) (x & 0xffL)` to
`(byte) x` where the conversion from long to byte is done by
two dex instructions, long-to-int and in int-to-byte.
Bug:
23965701
Change-Id: I833f193556671136ad2cd3f5b31cdfbc2d99c19d
Neil Fuller [Mon, 15 Feb 2016 13:17:04 +0000 (13:17 +0000)]
Merge "Switch the tests to using Jack for compilation"
David Brazdil [Mon, 8 Feb 2016 14:20:45 +0000 (14:20 +0000)]
ART: Implement HSelect with CSEL/FCSEL on arm64
Change-Id: I549af0cba3c5048066a2d1206b78a70b496d349e
David Brazdil [Mon, 15 Feb 2016 12:53:59 +0000 (12:53 +0000)]
Merge "X86_64: Allow HSelect to generate CMOV from memory"
Mark Mendell [Fri, 12 Feb 2016 19:36:51 +0000 (14:36 -0500)]
X86_64: Allow HSelect to generate CMOV from memory
Use the cmov with Address operand to allow CMOV from stack location.
Change-Id: Ia2f856c7b5003c413f23adaabe19be06f38c78ab
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Anton Kirilov [Thu, 28 Jan 2016 15:08:01 +0000 (15:08 +0000)]
dex2oat: Show memory usage values in bytes
Memory usage values are rounded down to an integer and shown in the
unit that would be most appropriate (refer to art::PrettySize());
e.g. if the value is at least 1 MB, but less than 1 GB, then it will
be shown in MB. However, that can introduce a very large error; for
example, a value that is close to, but less than 2 MB, will be
displayed as 1 MB.
This change forces dex2oat to print the raw value in bytes as well,
which may make memory usage analysis more accurate.
Change-Id: Id86a9fe21e8af0f02e77fac21cad51d35d941294