Commit 0c910378 by Michael Matz Committed by Michael Matz

re PR tree-optimization/53185 (segmentation fault in vectorizable_load)

	PR tree-optimization/53185
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
	peeling when we see strided loads.

testsuite/
	* gcc.dg/vect/pr53185.c: New test.

From-SVN: r187340
parent b0cd199e
2012-05-09 Michael Matz <matz@suse.de>
PR tree-optimization/53185
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
peeling when we see strided loads.
2012-05-09 Matthias Klose <doko@ubuntu.com>
* gcc-ar.c (main): Don't check for execute bits for the plugin.
......
2012-05-09 Michael Matz <matz@suse.de>
PR tree-optimization/53185
* gcc.dg/vect/pr53185.c: New test.
2012-05-09 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/53249
......
/* { dg-do compile } */
/* { dg-options "-O3 -ftree-vectorize" } */
unsigned short a, e;
int *b, *d;
int c;
extern int fn2();
void fn1 () {
void *f;
for (;;) {
fn2 ();
b = f;
e = 0;
for (; e < a; ++e)
b[e] = d[e * c];
}
}
......@@ -1507,6 +1507,17 @@ vect_enhance_data_refs_alignment (loop_vec_info loop_vinfo)
&& GROUP_FIRST_ELEMENT (stmt_info) != stmt)
continue;
/* FORNOW: Any strided load prevents peeling. The induction
variable analysis will fail when the prologue loop is generated,
and so we can't generate the new base for the pointer. */
if (STMT_VINFO_STRIDE_LOAD_P (stmt_info))
{
if (vect_print_dump_info (REPORT_DETAILS))
fprintf (vect_dump, "strided load prevents peeling");
do_peeling = false;
break;
}
/* For invariant accesses there is nothing to enhance. */
if (integer_zerop (DR_STEP (dr)))
continue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment