mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-25 19:54:44 +08:00
re PR middle-end/66110 (uint8_t memory access not optimized)
2015-05-13 Richard Biener <rguenther@suse.de> PR middle-end/66110 * alias.c (alias_sets_conflict_p): Do not treat has_zero_child specially. * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing. * gcc.dg/alias-2.c: Adjust. * gcc.dg/tree-ssa/ssa-dse-17.c: New testcase. From-SVN: r223126
This commit is contained in:
parent
6ef9367656
commit
2ae1d1b8b2
@ -1,3 +1,10 @@
|
||||
2015-05-13 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR middle-end/66110
|
||||
* alias.c (alias_sets_conflict_p): Do not treat has_zero_child
|
||||
specially.
|
||||
* Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
|
||||
|
||||
2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
|
||||
|
||||
* doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
|
||||
|
@ -211,6 +211,7 @@ libgcov-driver-tool.o-warn = -Wno-error
|
||||
libgcov-merge-tool.o-warn = -Wno-error
|
||||
gimple-match.o-warn = -Wno-unused
|
||||
generic-match.o-warn = -Wno-unused
|
||||
dfp.o-warn = -Wno-strict-aliasing
|
||||
|
||||
# All warnings have to be shut off in stage1 if the compiler used then
|
||||
# isn't gcc; configure determines that. WARN_CFLAGS will be either
|
||||
|
@ -470,15 +470,13 @@ alias_sets_conflict_p (alias_set_type set1, alias_set_type set2)
|
||||
/* See if the first alias set is a subset of the second. */
|
||||
ase = get_alias_set_entry (set1);
|
||||
if (ase != 0
|
||||
&& (ase->has_zero_child
|
||||
|| ase->children->get (set2)))
|
||||
&& ase->children->get (set2))
|
||||
return 1;
|
||||
|
||||
/* Now do the same, but with the alias sets reversed. */
|
||||
ase = get_alias_set_entry (set2);
|
||||
if (ase != 0
|
||||
&& (ase->has_zero_child
|
||||
|| ase->children->get (set1)))
|
||||
&& ase->children->get (set1))
|
||||
return 1;
|
||||
|
||||
/* The two alias sets are distinct and neither one is the
|
||||
|
@ -1,3 +1,9 @@
|
||||
2015-05-13 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR middle-end/66110
|
||||
* gcc.dg/alias-2.c: Adjust.
|
||||
* gcc.dg/tree-ssa/ssa-dse-17.c: New testcase.
|
||||
|
||||
2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
|
||||
|
||||
PR target/65103
|
||||
|
@ -11,6 +11,6 @@ struct foo {
|
||||
int
|
||||
sub1 (long long int foobar)
|
||||
{
|
||||
struct foo *tmp = (struct foo *) &foobar; // { dg-warning "type-punned pointer might" "" }
|
||||
struct foo *tmp = (struct foo *) &foobar; // { dg-warning "type-punned pointer will" "" }
|
||||
return tmp->i;
|
||||
}
|
||||
|
20
gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-17.c
Normal file
20
gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-17.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-dse1" } */
|
||||
|
||||
struct s1 {
|
||||
unsigned short f1;
|
||||
unsigned char f2;
|
||||
};
|
||||
|
||||
struct s2 {
|
||||
struct s1 *p1;
|
||||
};
|
||||
|
||||
void f1(struct s2 *p)
|
||||
{
|
||||
p->p1->f2 = 9;
|
||||
p->p1->f2 = 10;
|
||||
}
|
||||
|
||||
/* { dg-final { scan-tree-dump-times "f2 =" 1 "dse1" } } */
|
||||
/* { dg-final { cleanup-tree-dump "dse1" } } */
|
Loading…
Reference in New Issue
Block a user