re PR tree-optimization/53390 (ICE: tree check: expected integer_cst, have nop_expr in vect_compute_data_ref_alignmen on 32-bit x86 host)

2012-05-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53390
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
	strided loads.

	* gcc.dg/torture/pr53390.c: New testcase.

From-SVN: r187653
This commit is contained in:
Richard Guenther 2012-05-18 12:09:49 +00:00 committed by Richard Biener
parent 917a52020a
commit 7595989bb4
4 changed files with 37 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2012-05-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53390
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
strided loads.
2012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* tree-ssa-reassoc.c (bip_map): Remove decl.

View File

@ -1,3 +1,8 @@
2012-05-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53390
* gcc.dg/torture/pr53390.c: New testcase.
2012-05-18 Meador Inge <meadori@codesourcery.com>
PR rtl-optimization/53352

View File

@ -0,0 +1,21 @@
/* { dg-do compile } */
extern unsigned short var1;
extern int var2;
extern struct {
int f1;
unsigned short *f2;
} *my_table;
void foo(void)
{
unsigned short *local_vec
= __builtin_malloc(var1 * var2 * sizeof(unsigned short));
unsigned short i;
my_table[0].f2 = __builtin_malloc(var1 * sizeof(unsigned short));
for (i = 0; i < var1; ++i)
my_table[0].f2[i] = local_vec[i * var2];
}

View File

@ -824,6 +824,11 @@ vect_compute_data_ref_alignment (struct data_reference *dr)
/* Initialize misalignment to unknown. */
SET_DR_MISALIGNMENT (dr, -1);
/* Strided loads perform only component accesses, misalignment information
is irrelevant for them. */
if (STMT_VINFO_STRIDE_LOAD_P (stmt_info))
return true;
misalign = DR_INIT (dr);
aligned_to = DR_ALIGNED_TO (dr);
base_addr = DR_BASE_ADDRESS (dr);