aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOleg Endo <olegendo@gcc.gnu.org>2016-06-04 11:00:58 +0000
committerOleg Endo <olegendo@gcc.gnu.org>2016-06-04 11:00:58 +0000
commit56812845490199b04123d9faf55cc2b338e6dfb9 (patch)
tree6ed1b2b183108b7771ffa02ad42c3c13b9c3ab36 /gcc
parent909a11ad43c91acda1b74de1a81a67bf3dbe751d (diff)
downloadgcc-56812845490199b04123d9faf55cc2b338e6dfb9.zip
gcc-56812845490199b04123d9faf55cc2b338e6dfb9.tar.gz
gcc-56812845490199b04123d9faf55cc2b338e6dfb9.tar.bz2
re PR tree-optimization/52171 (memcmp/strcmp/strncmp can be optimized when the result is tested for [in]equality with 0)
gcc/ChangeLog PR tree-optimization/52171 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use by_pieces_ninsns instead of move_by_pieces_ninsns. From-SVN: r237090
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/sh/sh.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bce140b..3e11cb9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
+ PR tree-optimization/52171
+ * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
+ by_pieces_ninsns instead of move_by_pieces_ninsns.
+
+2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
+
* config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
for reg+reg addressing mode.
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 74327aa..0960a99 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -12506,11 +12506,11 @@ sh_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size,
switch (op)
{
case MOVE_BY_PIECES:
- return move_by_pieces_ninsns (size, align, MOVE_MAX_PIECES + 1)
+ return by_pieces_ninsns (size, align, MOVE_MAX_PIECES + 1, op)
< (!speed_p ? 2 : (align >= 32) ? 16 : 2);
case STORE_BY_PIECES:
case SET_BY_PIECES:
- return move_by_pieces_ninsns (size, align, STORE_MAX_PIECES + 1)
+ return by_pieces_ninsns (size, align, STORE_MAX_PIECES + 1, op)
< (!speed_p ? 2 : (align >= 32) ? 16 : 2);
default:
return default_use_by_pieces_infrastructure_p (size, align,