[prev in list] [next in list] [prev in thread] [next in thread]
List: gcc-bugs
Subject: [Bug tree-optimization/80933] New: redundant bzero/bcopy calls not eliminated
From: "msebor at gcc dot gnu.org" <gcc-bugzilla () gcc ! gnu ! org>
Date: 2017-05-31 21:07:44
Message-ID: bug-80933-4 () http ! gcc ! gnu ! org/bugzilla/
[Download RAW message or body]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80933
Bug ID: 80933
Summary: redundant bzero/bcopy calls not eliminated
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: msebor at gcc dot gnu.org
Target Milestone: ---
GCC eliminates redundant calls to memcpy, memmove, and memset, but it doesn't
do the same for redundant calls to bcopy and bzero. The tree-ssa-dse.c pass
that performs the former optimization is missing any handling for the latter
pair of functions.
$ cat t.c && gcc -O2 -S -Wall -Wall -fdump-tree-optimized=/dev/stdout t.c
void sink (void*);
void f (void)
{
char a[32];
__builtin_memset (a, 0, sizeof a);
__builtin_memset (a, 0, sizeof a); // eliminated as expected
sink (a);
}
void g (void)
{
char a[33];
__builtin_bzero (a, sizeof a);
__builtin_memset (a, 0, sizeof a); // not eliminated but could be
sink (a);
}
void h (void)
{
char a[33];
__builtin_bzero (a, sizeof a);
__builtin_bzero (a, sizeof a); // not eliminated but could be
sink (a);
}
;; Function f (f, funcdef_no=0, decl_uid=1795, cgraph_uid=0, symbol_order=0)
f ()
{
char a[32];
<bb 2> [100.00%]:
__builtin_memset (&a, 0, 32);
sink (&a);
a ={v} {CLOBBER};
return;
}
;; Function g (g, funcdef_no=1, decl_uid=1799, cgraph_uid=1, symbol_order=1)
g ()
{
char a[33];
<bb 2> [100.00%]:
__builtin_bzero (&a, 33);
__builtin_memset (&a, 0, 33);
sink (&a);
a ={v} {CLOBBER};
return;
}
;; Function h (h, funcdef_no=2, decl_uid=1803, cgraph_uid=2, symbol_order=2)
h ()
{
char a[33];
<bb 2> [100.00%]:
__builtin_bzero (&a, 33);
__builtin_bzero (&a, 33);
sink (&a);
a ={v} {CLOBBER};
return;
}=
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic