------- Comment #13 from irar at il dot ibm dot com 2007-10-11 10:43 ------- Maybe we can fix DCE not to eliminate such vars?
Or somehow fix split_constant_offset? The following patch changes the base from (int[0:D.1553] *) newcentroid.1_22 + (long unsigned int) dim_4(D) * 8 to (int[0:D.1553] *) D.1560_21 + (long unsigned int) dim_4(D) * 8 and, hence, there is no need in the size of newcentroid.1_22: Index: tree-data-ref.c =================================================================== --- tree-data-ref.c (revision 128902) +++ tree-data-ref.c (working copy) @@ -579,8 +579,10 @@ split_constant_offset (tree exp, tree *v { split_constant_offset (def_stmt_rhs, &var0, &off0); var0 = fold_convert (type, var0); - *var = var0; - *off = off0; + split_constant_offset (var0, &var2, &off2); + *var = var2; + *off = fold_build2 (PLUS_EXPR, TREE_TYPE (off2), + off0, off2); return; } } Maybe we can check if the base is of the VLA type and then try to further split it as above (and not to vectorize if we fail)? Thanks, Ira -- irar at il dot ibm dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rakdver at gcc dot gnu dot | |org Priority|P1 |P3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33680