re PR tree-optimization/71818 (ICE in as_a, at is-a.h:192 w/ -O2 -ftree-vectorize)
2016-08-01 Alan Hayward <alan.hayward@arm.com> gcc/ PR tree-optimization/71818 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs with non invariant evolutions testsuite/ PR tree-optimization/71818 * gcc.dg/vect/pr71818.c: New From-SVN: r238955
This commit is contained in:
parent
9839ff60d0
commit
2a93954eab
@ -1,3 +1,9 @@
|
|||||||
|
2015-08-01 Alan Hayward <alan.hayward@arm.com>
|
||||||
|
|
||||||
|
PR tree-optimization/71818
|
||||||
|
* tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
|
||||||
|
with non invariant evolutions
|
||||||
|
|
||||||
2016-08-01 Georg-Johann Lay <avr@gjlay.de>
|
2016-08-01 Georg-Johann Lay <avr@gjlay.de>
|
||||||
|
|
||||||
PR target/72767
|
PR target/72767
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2015-08-01 Alan Hayward <alan.hayward@arm.com>
|
||||||
|
|
||||||
|
PR tree-optimization/71818
|
||||||
|
* gcc.dg/vect/pr71818.c: New
|
||||||
|
|
||||||
2016-08-01 Martin Liska <mliska@suse.cz>
|
2016-08-01 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
PR tree-optimization/71857
|
PR tree-optimization/71857
|
||||||
|
16
gcc/testsuite/gcc.dg/vect/pr71818.c
Normal file
16
gcc/testsuite/gcc.dg/vect/pr71818.c
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/* { dg-do compile } */
|
||||||
|
|
||||||
|
char a;
|
||||||
|
short b;
|
||||||
|
int c, d;
|
||||||
|
void fn1() {
|
||||||
|
char e = 75, g;
|
||||||
|
unsigned char *f = &e;
|
||||||
|
a = 21;
|
||||||
|
for (; a <= 48; a++) {
|
||||||
|
for (; e <= 6;)
|
||||||
|
;
|
||||||
|
g -= e -= b || g <= c;
|
||||||
|
}
|
||||||
|
d = *f;
|
||||||
|
}
|
@ -40,6 +40,7 @@ along with GCC; see the file COPYING3. If not see
|
|||||||
#include "cfgloop.h"
|
#include "cfgloop.h"
|
||||||
#include "tree-scalar-evolution.h"
|
#include "tree-scalar-evolution.h"
|
||||||
#include "tree-vectorizer.h"
|
#include "tree-vectorizer.h"
|
||||||
|
#include "tree-ssa-loop-ivopts.h"
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Simple Loop Peeling Utilities
|
Simple Loop Peeling Utilities
|
||||||
@ -1591,11 +1592,27 @@ vect_can_advance_ivs_p (loop_vec_info loop_vinfo)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* FORNOW: We do not transform initial conditions of IVs
|
||||||
|
which evolution functions are not invariants in the loop. */
|
||||||
|
|
||||||
|
if (!expr_invariant_in_loop_p (loop, evolution_part))
|
||||||
|
{
|
||||||
|
if (dump_enabled_p ())
|
||||||
|
dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
|
||||||
|
"evolution not invariant in loop.\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/* FORNOW: We do not transform initial conditions of IVs
|
/* FORNOW: We do not transform initial conditions of IVs
|
||||||
which evolution functions are a polynomial of degree >= 2. */
|
which evolution functions are a polynomial of degree >= 2. */
|
||||||
|
|
||||||
if (tree_is_chrec (evolution_part))
|
if (tree_is_chrec (evolution_part))
|
||||||
return false;
|
{
|
||||||
|
if (dump_enabled_p ())
|
||||||
|
dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
|
||||||
|
"evolution is chrec.\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user