diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/pr71185.c | 13 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-prefetch.c | 3 |
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8471e8a..83a6f3c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2016-05-20 Richard Biener <rguenther@suse.de> + PR tree-optimization/71185 + * tree-ssa-loop-prefetch.c (gather_memory_references): Drop + register operations. + +2016-05-20 Richard Biener <rguenther@suse.de> + * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use gimple_seq_add_seq_without_update. (release_bb_predicate): Assert we have no operands to free. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0c2f4bc..87588f0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2016-05-20 Richard Biener <rguenther@suse.de> + PR tree-optimization/71185 + * gcc.dg/tree-ssa/pr71185.c: New testcase. + +2016-05-20 Richard Biener <rguenther@suse.de> + * gcc.dg/tree-ssa/ifc-cd.c: Adjust. 2016-05-19 Marek Polacek <polacek@redhat.com> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71185.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71185.c new file mode 100644 index 0000000..c2e246f --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71185.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-O3" } */ +/* { dg-options "-O3 -march=barcelona" { target x86_64-*-* i?86-*-* } } */ + +union U { struct S { int l; int m; } p; long long a; } b; +int a, c; + +void +foo () +{ + for (; b.p.m; b.a += c) + a = b.p.l / 65536.0 * 65536.0; +} diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c index 49fd597..fb8c476 100644 --- a/gcc/tree-ssa-loop-prefetch.c +++ b/gcc/tree-ssa-loop-prefetch.c @@ -631,6 +631,9 @@ gather_memory_references (struct loop *loop, bool *no_other_refs, unsigned *ref_ continue; } + if (! gimple_vuse (stmt)) + continue; + lhs = gimple_assign_lhs (stmt); rhs = gimple_assign_rhs1 (stmt); |