re PR tree-optimization/52210 (vect_model_simple_cost: reading uninitialised memory)

PR tree-optimization/52210
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Call
	vect_model_simple_cost with two entry vect_def_type array instead
	of an address of dt.

	* gcc.dg/pr52210.c: New test.

From-SVN: r184201
This commit is contained in:
Jakub Jelinek 2012-02-14 10:16:01 +01:00 committed by Jakub Jelinek
parent 837487be7b
commit 7daac345d1
4 changed files with 33 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2012-02-14 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/52210
* tree-vect-slp.c (vect_get_and_check_slp_defs): Call
vect_model_simple_cost with two entry vect_def_type array instead
of an address of dt.
2012-02-14 Richard Guenther <rguenther@suse.de>
PR lto/52178

View File

@ -1,3 +1,8 @@
2012-02-14 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/52210
* gcc.dg/pr52210.c: New test.
2012-02-14 Jason Merrill <jason@redhat.com>
PR c++/39055

View File

@ -0,0 +1,12 @@
/* PR tree-optimization/52210 */
/* { dg-do compile } */
/* { dg-options "-O3" } */
void
foo (long *x, long y, long z)
{
long a = x[0];
long b = x[1];
x[0] = a & ~y;
x[1] = b & ~z;
}

View File

@ -321,10 +321,15 @@ vect_get_and_check_slp_defs (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo,
vect_model_store_cost (stmt_info, ncopies_for_cost, false,
dt, slp_node);
else
/* Not memory operation (we don't call this function for
loads). */
vect_model_simple_cost (stmt_info, ncopies_for_cost, &dt,
slp_node);
{
enum vect_def_type dts[2];
dts[0] = dt;
dts[1] = vect_uninitialized_def;
/* Not memory operation (we don't call this function for
loads). */
vect_model_simple_cost (stmt_info, ncopies_for_cost, dts,
slp_node);
}
}
}
else