diff options
author | Oleg Endo <olegendo@gcc.gnu.org> | 2016-06-04 11:00:58 +0000 |
---|---|---|
committer | Oleg Endo <olegendo@gcc.gnu.org> | 2016-06-04 11:00:58 +0000 |
commit | 56812845490199b04123d9faf55cc2b338e6dfb9 (patch) | |
tree | 6ed1b2b183108b7771ffa02ad42c3c13b9c3ab36 /gcc/config/sh | |
parent | 909a11ad43c91acda1b74de1a81a67bf3dbe751d (diff) | |
download | gcc-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/config/sh')
-rw-r--r-- | gcc/config/sh/sh.c | 4 |
1 files changed, 2 insertions, 2 deletions
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, |