re PR tree-optimization/58432 (ICE: in insert_value_copy_on_edge, at tree-outof-ssa.c:233)
2013-09-17 Richard Biener <rguenther@suse.de> PR tree-optimization/58432 * tree-loop-distribution.c (tree_loop_distribution): Also scan PHIs for outside loop uses and seed a partition from them. * gcc.dg/pr58432.c: New testcase. From-SVN: r202644
This commit is contained in:
parent
c068654bb1
commit
deb6c11a73
|
@ -1,3 +1,9 @@
|
|||
2013-09-17 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/58432
|
||||
* tree-loop-distribution.c (tree_loop_distribution): Also
|
||||
scan PHIs for outside loop uses and seed a partition from them.
|
||||
|
||||
2013-09-17 Bin Cheng <bin.cheng@arm.com>
|
||||
|
||||
* gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2013-09-17 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/58432
|
||||
* gcc.dg/pr58432.c: New testcase.
|
||||
|
||||
2013-09-17 Bin Cheng <bin.cheng@arm.com>
|
||||
|
||||
* gcc.dg/tree-ssa/slsr-39.c: New test.
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-profiling "-fprofile-generate" } */
|
||||
/* { dg-options "-O3 -fprofile-generate" } */
|
||||
|
||||
struct {
|
||||
int prefix;
|
||||
int dir_idx;
|
||||
} *a;
|
||||
int b;
|
||||
void fn1() {
|
||||
int *c, *d;
|
||||
for (; b; b++)
|
||||
if (d[b]) {
|
||||
c[b] = d[b];
|
||||
a[0].dir_idx = 0;
|
||||
}
|
||||
}
|
|
@ -1676,6 +1676,17 @@ tree_loop_distribution (void)
|
|||
for (i = 0; i < loop->num_nodes; ++i)
|
||||
{
|
||||
gimple_stmt_iterator gsi;
|
||||
for (gsi = gsi_start_phis (bbs[i]); !gsi_end_p (gsi); gsi_next (&gsi))
|
||||
{
|
||||
gimple phi = gsi_stmt (gsi);
|
||||
if (virtual_operand_p (gimple_phi_result (phi)))
|
||||
continue;
|
||||
/* Distribute stmts which have defs that are used outside of
|
||||
the loop. */
|
||||
if (!stmt_has_scalar_dependences_outside_loop (loop, phi))
|
||||
continue;
|
||||
work_list.safe_push (phi);
|
||||
}
|
||||
for (gsi = gsi_start_bb (bbs[i]); !gsi_end_p (gsi); gsi_next (&gsi))
|
||||
{
|
||||
gimple stmt = gsi_stmt (gsi);
|
||||
|
|
Loading…
Reference in New Issue