OSDN Git Service
Roland Levillain [Wed, 29 Apr 2015 11:25:06 +0000 (11:25 +0000)]
am
e761b911: Merge "Revert "Revert "Revert "[optimizing] Improve x86 shifts""""
* commit '
e761b911b24e9001ac50667462b4f936ebee7369':
Revert "Revert "Revert "[optimizing] Improve x86 shifts"""
Roland Levillain [Wed, 29 Apr 2015 11:12:59 +0000 (11:12 +0000)]
Merge "Revert "Revert "Revert "[optimizing] Improve x86 shifts""""
Roland Levillain [Wed, 29 Apr 2015 11:12:33 +0000 (11:12 +0000)]
Revert "Revert "Revert "[optimizing] Improve x86 shifts"""
This reverts commit
9b95a057ee20e4b1ca2e9c663726482172dc9ba3.
Reverting this CL as it breaks libcore tests:
org.apache.harmony.tests.java.lang.DoubleTest#test_compare
junit.framework.AssertionFailedError: compare() -0.0 should be less 0.0
at junit.framework.Assert.assertTrue(Assert.java:140)
at org.apache.harmony.tests.java.lang.DoubleTest.test_compare(DoubleTest.java:258)
org.apache.harmony.tests.java.lang.DoubleTest#test_compare FAIL (EXEC_FAILED)
org.apache.harmony.tests.java.lang.DoubleTest#test_compareToLjava_lang_Double
junit.framework.AssertionFailedError: Assert 2: compare() -0.0 should be less 0.0
at junit.framework.Assert.assertTrue(Assert.java:140)
at org.apache.harmony.tests.java.lang.DoubleTest.test_compareToLjava_lang_Double(DoubleTest.java:1320)
org.apache.harmony.tests.java.lang.DoubleTest#test_compareToLjava_lang_Double FAIL (EXEC_FAILED)
Change-Id: I10f0ec8cc9495cc225fef1940b3f1a9fe87d996f
Nicolas Geoffray [Wed, 29 Apr 2015 10:45:14 +0000 (10:45 +0000)]
am
7386f983: Merge "Bugs have been fixed, so run the tests."
* commit '
7386f983a67cf73c91cfb9a69a3919f95b25f276':
Bugs have been fixed, so run the tests.
Nicolas Geoffray [Wed, 29 Apr 2015 10:34:20 +0000 (10:34 +0000)]
Merge "Bugs have been fixed, so run the tests."
Roland Levillain [Wed, 29 Apr 2015 10:29:08 +0000 (10:29 +0000)]
am
fadf977d: Merge "Add InsertInstructionAfter in HBasicBlock."
* commit '
fadf977d85bfbf3f9d5d4730afb660cbed34f989':
Add InsertInstructionAfter in HBasicBlock.
Roland Levillain [Wed, 29 Apr 2015 10:29:05 +0000 (10:29 +0000)]
am
d474b1d0: Merge "Revert "Revert "[optimizing] Improve x86 shifts"""
* commit '
d474b1d0fd69fdeb481adda8c0814512956f2d51':
Revert "Revert "[optimizing] Improve x86 shifts""
Roland Levillain [Wed, 29 Apr 2015 10:23:07 +0000 (10:23 +0000)]
Merge "Add InsertInstructionAfter in HBasicBlock."
Roland Levillain [Wed, 29 Apr 2015 10:18:40 +0000 (10:18 +0000)]
Merge "Revert "Revert "[optimizing] Improve x86 shifts"""
Nicolas Geoffray [Wed, 29 Apr 2015 09:57:50 +0000 (10:57 +0100)]
Bugs have been fixed, so run the tests.
Change-Id: I6769cf244d246160b65d6dd4e4df0efb0aa8a7e5
Roland Levillain [Wed, 29 Apr 2015 09:22:37 +0000 (10:22 +0100)]
Revert "Revert "[optimizing] Improve x86 shifts""
This reverts commit
f9aac1e9f442c2486cd54f045d43e15791601205.
Don't use Location::Any() for the first input if the output is
Location::SameAsFirstInput().
Change-Id: I400834052b114abf0d616da1b4b6506f7bba10ab
Andreas Gampe [Wed, 29 Apr 2015 06:40:14 +0000 (06:40 +0000)]
am
57f6bee4: Merge "ART: Move dex2oat watchdog output to LogLine"
* commit '
57f6bee40489842c0461140935f900ed88281592':
ART: Move dex2oat watchdog output to LogLine
Andreas Gampe [Wed, 29 Apr 2015 06:30:40 +0000 (06:30 +0000)]
Merge "ART: Move dex2oat watchdog output to LogLine"
Andreas Gampe [Wed, 29 Apr 2015 06:16:03 +0000 (23:16 -0700)]
ART: Move dex2oat watchdog output to LogLine
The fprintf isn't visible on device, as it doesn't end up in the
logcat.
Also increase the watchdog timeout to 10 minutes.
Bug:
20658562
Change-Id: I1fec8dae25f9282f72e762bda934fceb948bbd5f
Andreas Gampe [Wed, 29 Apr 2015 05:19:44 +0000 (05:19 +0000)]
am
b0300bad: Merge "ART: Remove multidex limit"
* commit '
b0300bad88e6295217a53ff96db6170a727997a9':
ART: Remove multidex limit
Andreas Gampe [Wed, 29 Apr 2015 05:10:04 +0000 (05:10 +0000)]
Merge "ART: Remove multidex limit"
Andreas Gampe [Tue, 28 Apr 2015 03:01:52 +0000 (20:01 -0700)]
ART: Remove multidex limit
Remove the arbitrary multidex limit. If users want to use many
files, allow them, but print a warning after a considerable amount.
Bug:
20071800
(cherry picked from commit
32c26b8f9b995250479c185172f4ffd881a59996)
Change-Id: Ic51c96b84042f769a7d33ec53fe587b68cd69df4
Mathieu Chartier [Tue, 28 Apr 2015 21:17:15 +0000 (21:17 +0000)]
am
13d38aab: Merge "Fix possible null deference in Throwable::Dump"
* commit '
13d38aabf01f8391946730b7c2e8d077b1ec7d13':
Fix possible null deference in Throwable::Dump
Mathieu Chartier [Tue, 28 Apr 2015 21:06:33 +0000 (21:06 +0000)]
Merge "Fix possible null deference in Throwable::Dump"
Mathieu Chartier [Tue, 28 Apr 2015 20:53:02 +0000 (13:53 -0700)]
Fix possible null deference in Throwable::Dump
Bug:
20640601
Change-Id: Ibd6081ed9ea16f320e505e06e690b8eddb1228ef
Jeff Hao [Tue, 28 Apr 2015 19:25:26 +0000 (19:25 +0000)]
am
b8df6601: Merge "Change ddmc run-test to make new objects instead of strings."
* commit '
b8df6601f2119fd90150761388057dbe893bb6ae':
Change ddmc run-test to make new objects instead of strings.
Jeff Hao [Tue, 28 Apr 2015 19:15:05 +0000 (19:15 +0000)]
Merge "Change ddmc run-test to make new objects instead of strings."
Jeff Hao [Tue, 28 Apr 2015 19:11:22 +0000 (12:11 -0700)]
Change ddmc run-test to make new objects instead of strings.
Before, the test was creating new strings until overflowing allocations,
which was half string objects and half character arrays. Now, it
allocates all strings with the character data, which is larger than
before, causing the test to run out of memory. Allocating only objects
prevents the test from running out of memory.
Change-Id: Icf3f0fd2ae847e76a9b8d5dfb762be92de16aaa3
Vladimir Marko [Tue, 28 Apr 2015 18:50:39 +0000 (18:50 +0000)]
am
edede5c6: Merge "Quick: Fix crash on fall-through out of method code."
* commit '
edede5c67daa2a6890067da0934e0ba6e14661b9':
Quick: Fix crash on fall-through out of method code.
Vladimir Marko [Tue, 28 Apr 2015 18:35:17 +0000 (18:35 +0000)]
Merge "Quick: Fix crash on fall-through out of method code."
Calin Juravle [Tue, 7 Apr 2015 18:43:36 +0000 (19:43 +0100)]
Quick: Fix crash on fall-through out of method code.
Fix Quick crash when the last insn has a fall-through out of
the method's code. Allow creation of an out-of-method block
and at the end of MIRGraph::InlineMethod() check if that
block is reachable. If it is, punt to interpreter. Add tests
for unreachable if-lt and packed-switch as the last insn.
Also fix MIRGraph::ProcessCanSwitch() to treat the offset to
the data as signed. Jumping over the data with a goto and
using it from a switch further down is valid. This was also
crashing (presumably only on 64-bit dex2oat).
Thanks to Stephen Kyle (stephenckyle@googlemail.com) for the
bug report.
Bug:
19988134
Change-Id: I627f4137f61901897bfb9a5252741c6ded3a1adb
Dan Albert [Tue, 28 Apr 2015 18:23:35 +0000 (18:23 +0000)]
am
458d91b0: Merge "Prevent undefined behavior in RosAlloc."
* commit '
458d91b0f72293c9dd347feecf535db0682ccd71':
Prevent undefined behavior in RosAlloc.
Dan Albert [Tue, 28 Apr 2015 18:11:38 +0000 (18:11 +0000)]
Merge "Prevent undefined behavior in RosAlloc."
Dan Albert [Thu, 16 Apr 2015 18:50:30 +0000 (11:50 -0700)]
Prevent undefined behavior in RosAlloc.
In cases where remain == 0, the 32-bit value would be left shifted
32-bits, which is undefined behavior.
Change-Id: I6277279341b168536f928ce87375c395a1aa865c
Mathieu Chartier [Tue, 28 Apr 2015 18:03:18 +0000 (18:03 +0000)]
am
2b9b0de4: Merge "Fix some compaction bugs in string allocation"
* commit '
2b9b0de424146c8b654b3fa05b14c48d3b2b0b13':
Fix some compaction bugs in string allocation
Mathieu Chartier [Tue, 28 Apr 2015 17:47:45 +0000 (17:47 +0000)]
Merge "Fix some compaction bugs in string allocation"
Mathieu Chartier [Tue, 28 Apr 2015 17:01:28 +0000 (10:01 -0700)]
Fix some compaction bugs in string allocation
Change-Id: I2b8499c60de7690e1012d71bccba4ecd589da9af
Sebastien Hertz [Tue, 28 Apr 2015 14:42:23 +0000 (14:42 +0000)]
am
1c5808c0: Merge "Fix constructor access check through reflection"
* commit '
1c5808c0fa83155565f5319808a2949e0a3f5789':
Fix constructor access check through reflection
Sebastien Hertz [Tue, 28 Apr 2015 14:33:00 +0000 (14:33 +0000)]
Merge "Fix constructor access check through reflection"
Vladimir Marko [Tue, 28 Apr 2015 13:51:27 +0000 (13:51 +0000)]
am
d4667dea: Merge "ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points."
* commit '
d4667dea87e68ee3ee64581af138f59300a5c510':
ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points.
Vladimir Marko [Tue, 28 Apr 2015 13:31:38 +0000 (13:31 +0000)]
Merge "ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points."
Sebastien Hertz [Tue, 28 Apr 2015 13:00:41 +0000 (15:00 +0200)]
Fix constructor access check through reflection
We must not throw IllegalAccessException if the constructor has been
made accessible by a previous call to Constructor.setAccessible, even
if the caller cannot access the constructor.
Bug:
20639158
Change-Id: I9a34f05cdbb8825ad88b42223743690228e3f03e
Vladimir Marko [Tue, 28 Apr 2015 13:14:58 +0000 (14:14 +0100)]
ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points.
Missing from
https://android-review.googlesource.com/79174
Change-Id: If182b73824edfd4639f645612b2f7b67c1f31bef
Vladimir Marko [Tue, 28 Apr 2015 12:19:38 +0000 (12:19 +0000)]
am
95935f28: Merge "ART: Fix MIPS entrypoint downcall macros."
* commit '
95935f28a7206c32592f6744cfc4c63e4d87ecdf':
ART: Fix MIPS entrypoint downcall macros.
Vladimir Marko [Tue, 28 Apr 2015 12:10:30 +0000 (12:10 +0000)]
Merge "ART: Fix MIPS entrypoint downcall macros."
Vladimir Marko [Tue, 28 Apr 2015 11:37:09 +0000 (12:37 +0100)]
ART: Fix MIPS entrypoint downcall macros.
Broken by not updating the MIPS assembly after rebase of
https://android-review.googlesource.com/79174
Change-Id: I6258c254c0652e92357d306640c461d9523da227
Vladimir Marko [Tue, 28 Apr 2015 10:44:37 +0000 (10:44 +0000)]
am
3adfc4bb: Merge "Quick: Avoid unnecessary GVN work in release builds."
* commit '
3adfc4bbe6c42d574bd2069d8e38a13d5ad98ccf':
Quick: Avoid unnecessary GVN work in release builds.
Roland Levillain [Tue, 28 Apr 2015 10:39:17 +0000 (10:39 +0000)]
am
80613ffd: Merge "Have HInvoke instructions know their number of actual arguments."
* commit '
80613ffd5699e6207d6b1264d600a0fc168074ce':
Have HInvoke instructions know their number of actual arguments.
Nicolas Geoffray [Tue, 28 Apr 2015 10:39:14 +0000 (10:39 +0000)]
am
a94fb1f9: Merge "Revert "Revert "[optimizing] Replace FP divide by power of 2"""
* commit '
a94fb1f99ee3390bca9531b2512f8fc65f13ceee':
Revert "Revert "[optimizing] Replace FP divide by power of 2""
Vladimir Marko [Tue, 28 Apr 2015 10:36:38 +0000 (10:36 +0000)]
Merge "Quick: Avoid unnecessary GVN work in release builds."
Roland Levillain [Tue, 28 Apr 2015 10:31:38 +0000 (10:31 +0000)]
Merge "Have HInvoke instructions know their number of actual arguments."
Nicolas Geoffray [Tue, 28 Apr 2015 10:29:17 +0000 (10:29 +0000)]
Merge "Revert "Revert "[optimizing] Replace FP divide by power of 2"""
Roland Levillain [Tue, 28 Apr 2015 10:00:54 +0000 (11:00 +0100)]
Have HInvoke instructions know their number of actual arguments.
Add an art::HInvoke::GetNumberOfArguments routine so that
art::HInvoke and its subclasses can return the number of
actual arguments of the called method. Use it in code
generators and intrinsics handlers.
Consequently, no longer remove a clinit check as last input
of a static invoke if it is still present during baseline
code generation, but ensure that static invokes have no such
check as last input in optimized compilations.
Change-Id: Iaf9e07d1057a3b15b83d9638538c02b70211e476
Jeff Hao [Tue, 28 Apr 2015 04:15:04 +0000 (04:15 +0000)]
am
64db0171: Merge "Fix java_lang_Class newInstance for strings; also quick entrypoints."
* commit '
64db01714f91bf255a79c0a88813641c240c9857':
Fix java_lang_Class newInstance for strings; also quick entrypoints.
Jeff Hao [Tue, 28 Apr 2015 03:57:53 +0000 (03:57 +0000)]
Merge "Fix java_lang_Class newInstance for strings; also quick entrypoints."
Jeff Hao [Tue, 28 Apr 2015 03:54:07 +0000 (20:54 -0700)]
Fix java_lang_Class newInstance for strings; also quick entrypoints.
Change-Id: I35fd23c5a9051e1ffda0ecc2cbafb5d318c7b5e6
Andreas Gampe [Tue, 28 Apr 2015 02:53:22 +0000 (02:53 +0000)]
am
f0a3d3da: Merge "ART: Fix constructor access checking"
* commit '
f0a3d3dad248ad0dcb7cfc6addcc66d8bd117e48':
ART: Fix constructor access checking
Andreas Gampe [Tue, 28 Apr 2015 02:42:25 +0000 (02:42 +0000)]
Merge "ART: Fix constructor access checking"
Andreas Gampe [Tue, 28 Apr 2015 00:26:37 +0000 (17:26 -0700)]
ART: Fix constructor access checking
Constructor access must be checked.
(cherry picked from commit
0dd76cd3f09f495a1b9a0e4f8712c09ff885c6fd)
Bug:
20639158
Change-Id: I3c586e9572a748d208bea43aa2349c3ef52a2ee5
Jeff Hao [Tue, 28 Apr 2015 02:15:12 +0000 (02:15 +0000)]
am
9d1e1903: Merge "Replace String CharArray with internal uint16_t array."
* commit '
9d1e19035a59ff8bf05a09ad880ede99806ba73f':
Replace String CharArray with internal uint16_t array.
Jeff Hao [Tue, 28 Apr 2015 02:04:09 +0000 (02:04 +0000)]
Merge "Replace String CharArray with internal uint16_t array."
Jeff Hao [Wed, 15 Jan 2014 21:49:50 +0000 (13:49 -0800)]
Replace String CharArray with internal uint16_t array.
Summary of high level changes:
- Adds compiler inliner support to identify string init methods
- Adds compiler support (quick & optimizing) with new invoke code path
that calls method off the thread pointer
- Adds thread entrypoints for all string init methods
- Adds map to verifier to log when receiver of string init has been
copied to other registers. used by compiler and interpreter
Change-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01
Hiroshi Yamauchi [Tue, 28 Apr 2015 01:18:46 +0000 (01:18 +0000)]
am
3fd79afb: Merge "Switch the default read barrier type to a Baker one."
* commit '
3fd79afbb7490f52817f737ecceb694f6618dcf9':
Switch the default read barrier type to a Baker one.
Hiroshi Yamauchi [Tue, 28 Apr 2015 01:07:17 +0000 (01:07 +0000)]
Merge "Switch the default read barrier type to a Baker one."
Hiroshi Yamauchi [Tue, 28 Apr 2015 00:58:51 +0000 (17:58 -0700)]
Switch the default read barrier type to a Baker one.
For automated testing.
Bug:
12687968
Change-Id: I831d6e45e4729f0dd3cf178d02af511a32cc9777
Nicolas Geoffray [Mon, 27 Apr 2015 08:53:46 +0000 (08:53 +0000)]
Revert "Revert "[optimizing] Replace FP divide by power of 2""
This reverts commit
067cae2c86627d2edcf01b918ee601774bc76aeb.
Change-Id: Iaaa8772500ea7d3dce6ae0829dc0dc3bbc9c14ca
Christopher Ferris [Mon, 27 Apr 2015 19:14:58 +0000 (19:14 +0000)]
am
97c96f5a: Merge "Fix mismatched malloc/free delete/new."
* commit '
97c96f5aab22f75dd54089bdc194588a4b5a2e8d':
Fix mismatched malloc/free delete/new.
Hiroshi Yamauchi [Mon, 27 Apr 2015 19:14:56 +0000 (19:14 +0000)]
am
d74a1bf3: Merge "Use the lock word bits for Baker-style read barrier."
* commit '
d74a1bf310a6a5ad2d770fcd76735cbc617d64eb':
Use the lock word bits for Baker-style read barrier.
Mathieu Chartier [Mon, 27 Apr 2015 19:14:53 +0000 (19:14 +0000)]
am
acee1524: Merge "Fix clean-oat"
* commit '
acee152464725efac3dd74c9ac3acf2afa73f0e9':
Fix clean-oat
Christopher Ferris [Mon, 27 Apr 2015 19:05:36 +0000 (19:05 +0000)]
Merge "Fix mismatched malloc/free delete/new."
Christopher Ferris [Sat, 25 Apr 2015 00:23:53 +0000 (17:23 -0700)]
Fix mismatched malloc/free delete/new.
Modify the monitor code to override the delete operator. The problem
is the new operator is overloaded to return a pointer returned by
posix_memalign, but then it's freed with a delete, not a free call.
Also, fix the debugger code to use the [] for a std::unique_ptr to
match how the value is actually allocated.
Both problems found by ASAN.
Bug:
18202869
Change-Id: I2f3a2c02a7f35399b7ba6717b08a035089fab00d
Hiroshi Yamauchi [Mon, 27 Apr 2015 18:10:18 +0000 (18:10 +0000)]
Merge "Use the lock word bits for Baker-style read barrier."
Mathieu Chartier [Mon, 27 Apr 2015 18:01:13 +0000 (18:01 +0000)]
Merge "Fix clean-oat"
Mathieu Chartier [Mon, 27 Apr 2015 17:46:39 +0000 (10:46 -0700)]
Fix clean-oat
Change to use adb shell sh -c <cmd>.
Also fixed other phony targets, deleted smart mode and added
verify-at-runtime mode.
Change-Id: I562117774eaa153e66b46d6f173fe993931018b7
Nicolas Geoffray [Mon, 27 Apr 2015 17:28:57 +0000 (17:28 +0000)]
am
2d01066d: Merge "Dissociate uses with environment uses."
* commit '
2d01066db24c19f9384f50ff71806cbb4835c7f9':
Dissociate uses with environment uses.
Nicolas Geoffray [Mon, 27 Apr 2015 17:12:10 +0000 (17:12 +0000)]
Merge "Dissociate uses with environment uses."
Vladimir Marko [Mon, 27 Apr 2015 17:09:36 +0000 (17:09 +0000)]
am
295dda50: Merge "Quick: Rely on inferred types in GVN/LVN/DCE."
* commit '
295dda5066dfeb5bed88a4a484268f94b060c7fb':
Quick: Rely on inferred types in GVN/LVN/DCE.
Vladimir Marko [Mon, 27 Apr 2015 16:53:25 +0000 (16:53 +0000)]
Merge "Quick: Rely on inferred types in GVN/LVN/DCE."
Nicolas Geoffray [Mon, 27 Apr 2015 15:58:06 +0000 (16:58 +0100)]
Dissociate uses with environment uses.
They are most of the times in the way when iterating. They
also complicate the logic of (future) back edge uses.
Change-Id: I152595d9913073fe901b267ca623fa0fe7432484
David Brazdil [Mon, 27 Apr 2015 16:15:52 +0000 (16:15 +0000)]
am
d14438f0: Merge "ART: Simplify Ifs with BooleanNot condition"
* commit '
d14438f0c5071962be7fab572b54687d32d9d087':
ART: Simplify Ifs with BooleanNot condition
David Brazdil [Mon, 27 Apr 2015 16:02:02 +0000 (16:02 +0000)]
Merge "ART: Simplify Ifs with BooleanNot condition"
David Brazdil [Mon, 27 Apr 2015 12:54:09 +0000 (13:54 +0100)]
ART: Simplify Ifs with BooleanNot condition
If statements with negated condition can be simplified by removing the
negation and swapping the true and false branches.
Change-Id: I197afbc79fb7344d73b7b85d3611e7ca2519717f
Vladimir Marko [Sat, 25 Apr 2015 16:00:45 +0000 (17:00 +0100)]
Quick: Avoid unnecessary GVN work in release builds.
In GVN's post-processing phase, compare LVNs only in debug
builds as they should be equal anyway.
Remove the Gate() from GVN cleanup pass and remove the
DCHECK() from MIRGraph::GlobalValueNumberingCleanup()
to make it a no-op if the GVN didn't run.
Bug:
16398693
Change-Id: Ia4f1e7e3ecf12d0305966c86e0e7dbae61dab0b7
Nicolas Geoffray [Mon, 27 Apr 2015 14:25:00 +0000 (14:25 +0000)]
am
a0ee8622: Merge "Add support for caching float and double constants."
* commit '
a0ee862288b702468f8c2b6d0ad0f1c61be0b483':
Add support for caching float and double constants.
Nicolas Geoffray [Mon, 27 Apr 2015 14:12:24 +0000 (14:12 +0000)]
Merge "Add support for caching float and double constants."
Nicolas Geoffray [Mon, 27 Apr 2015 08:53:46 +0000 (08:53 +0000)]
Add support for caching float and double constants.
Change-Id: Ib5205bad1006bc5e3c9cc86bc82a6b4b1ce9bef9
David Brazdil [Mon, 27 Apr 2015 12:59:08 +0000 (12:59 +0000)]
am
0fbfe6f9: Merge "ART: Fix removing a Phi with RemoveInstruction"
* commit '
0fbfe6f92a2481daf914043262b5854e65d8c3cc':
ART: Fix removing a Phi with RemoveInstruction
David Brazdil [Mon, 27 Apr 2015 12:42:59 +0000 (12:42 +0000)]
Merge "ART: Fix removing a Phi with RemoveInstruction"
David Brazdil [Mon, 27 Apr 2015 12:28:57 +0000 (13:28 +0100)]
ART: Fix removing a Phi with RemoveInstruction
Boolean simplifier might attempt to remove a Phi from the Instruction
list.
Change-Id: I698cc616549bd88dac96395cb2e5d09b5433d157
Guillaume "Vermeille" Sanchez [Fri, 24 Apr 2015 15:36:52 +0000 (16:36 +0100)]
Add InsertInstructionAfter in HBasicBlock.
Change-Id: I56e4e6edb39d1aab747877b7e517e94f0393f296
Vladimir Marko [Fri, 24 Apr 2015 18:03:51 +0000 (19:03 +0100)]
Quick: Rely on inferred types in GVN/LVN/DCE.
Fix LVN::GetEndingVregValueNumberImpl() to check whether
the requested wideness matches the SSA register type as
recorded in MIRGraph::reg_location_.
Add DCHECKs that the wideness matches when getting/setting
sreg values, update Phi handling in LVN/DCE to use the type
from MIRGraph::reg_location_ instead of determining it from
the sreg value maps which would now trigger the DCHECKs.
Update tests to initialize MIRGraph::reg_location_.
Reenable DCE.
Bug:
20572509
Change-Id: I1a4d4e32cd57807ca8b56d2f3ed5e1288660b82e
Mingyao Yang [Mon, 27 Apr 2015 07:15:02 +0000 (07:15 +0000)]
am
76bf84a1: Merge "BCE: don\'t add deoptimization if the loop has early exit."
* commit '
76bf84a196576f902a76a1165516a49dac15856f':
BCE: don't add deoptimization if the loop has early exit.
Mingyao Yang [Mon, 27 Apr 2015 07:15:01 +0000 (07:15 +0000)]
am
f382eff1: Merge "Deoptimization-based BCE for unknown loop bounds."
* commit '
f382eff130a5d90c34b3f09c4c61cb50cacd4c54':
Deoptimization-based BCE for unknown loop bounds.
Nicolas Geoffray [Mon, 27 Apr 2015 07:14:59 +0000 (07:14 +0000)]
am
adf15974: Merge "Revert "[optimizing] Replace FP divide by power of 2""
* commit '
adf15974e0a0a2b0e6dc311ff5701b87ca15964a':
Revert "[optimizing] Replace FP divide by power of 2"
Nicolas Geoffray [Mon, 27 Apr 2015 07:14:56 +0000 (07:14 +0000)]
am
5ff903a5: Merge "[optimizing] Replace FP divide by power of 2"
* commit '
5ff903a589af282f516bbcf6844ff2656ce76b02':
[optimizing] Replace FP divide by power of 2
Mingyao Yang [Mon, 27 Apr 2015 01:41:58 +0000 (01:41 +0000)]
Merge "BCE: don't add deoptimization if the loop has early exit."
Mingyao Yang [Mon, 27 Apr 2015 01:15:30 +0000 (18:15 -0700)]
BCE: don't add deoptimization if the loop has early exit.
Also make the way to detect loop_body_successor to be
more accurate.
Change-Id: I29680f93396383c478a8f40ad28735e4f3f07c1b
Mingyao Yang [Sun, 26 Apr 2015 18:23:01 +0000 (18:23 +0000)]
Merge "Deoptimization-based BCE for unknown loop bounds."
Mingyao Yang [Mon, 13 Apr 2015 23:46:28 +0000 (16:46 -0700)]
Deoptimization-based BCE for unknown loop bounds.
For loop like:
for (int i = start; i < end; i++) {
array[i] = 1;
}
We add the following to the loop pre-header:
if (start < 0) deoptimize();
if (end > array.length) deoptimize();
Then we can eliminate bounds-check of array[i] inside the loop.
We also take care of indexing with induction variable plus some offsets,
like array[i - 1]/array[i + 1] inside the loop, and adjust the condition
for deoptimization accordingly.
Change-Id: I9e24c6b5e134ff95eff5b5605ff8f95d6546616f
Nicolas Geoffray [Sun, 26 Apr 2015 16:43:18 +0000 (16:43 +0000)]
Merge "Revert "[optimizing] Replace FP divide by power of 2""
Nicolas Geoffray [Sun, 26 Apr 2015 16:43:00 +0000 (16:43 +0000)]
Revert "[optimizing] Replace FP divide by power of 2"
Fails compiling docs.
This reverts commit
b0bd8915cb257cdaf46ba663c450a6543bca75af.
Change-Id: I47d32525c83a73118e2163eb58c68bbb7a28bb38
Nicolas Geoffray [Sun, 26 Apr 2015 15:05:28 +0000 (15:05 +0000)]
Merge "[optimizing] Replace FP divide by power of 2"
Andreas Gampe [Sun, 26 Apr 2015 01:00:42 +0000 (01:00 +0000)]
am
2c31b5ac: Merge "ART: Fix Trace types, check minimum buf size"
* commit '
2c31b5ac1d45f2f96932c8ff0d299abb2dbde862':
ART: Fix Trace types, check minimum buf size
Andreas Gampe [Sun, 26 Apr 2015 01:00:40 +0000 (01:00 +0000)]
am
711d8400: Merge "ART: Fix addpd opcode, add Quick x86 assembler test"
* commit '
711d84008f5b3cda849611102118316c29a75b16':
ART: Fix addpd opcode, add Quick x86 assembler test
Andreas Gampe [Sun, 26 Apr 2015 00:41:53 +0000 (00:41 +0000)]
Merge "ART: Fix Trace types, check minimum buf size"