Activity log for bug #960283

Date Who What changed Old value New value Message
2012-03-20 15:03:38 mickael guene bug added bug
2012-03-20 15:03:38 mickael guene attachment added small.c https://bugs.launchpad.net/bugs/960283/+attachment/2904126/+files/small.c
2012-03-20 15:06:01 mickael guene attachment added small.patch https://bugs.launchpad.net/gcc-linaro/+bug/960283/+attachment/2904127/+files/small.patch
2012-03-20 15:06:39 mickael guene attachment removed small.patch https://bugs.launchpad.net/gcc-linaro/+bug/960283/+attachment/2904127/+files/small.patch
2012-03-20 15:08:29 mickael guene attachment added small2.patch https://bugs.launchpad.net/gcc-linaro/+bug/960283/+attachment/2904146/+files/small2.patch
2012-03-20 15:09:02 mickael guene description When compiling attached small.c file with linaro-4.6-2012.03 configured with --enable-checking and gcc options : gcc -c small.c -msoft-float -march=armv7-a -mfloat-abi=softfp -mfpu=neon -mvectorize-with-neon-quad -ftree-vectorize -O2 I have a great number of assertion due to access to unallocated memory. patch from Bug #960274 plus attached patch fix them all (certainly badly) I have not done a very deep analysis but either analysis pass make a wrong decision when applying slp optimization or code is seriously bugged. diff -Naur sources/gcc/tree-vect-slp.c sources.patch/gcc/tree-vect-slp.c --- sources/gcc/tree-vect-slp.c 2012-03-12 12:31:42.000000000 +0100 +++ sources.patch/gcc/tree-vect-slp.c 2012-03-20 13:36:46.000000000 +0100 @@ -2450,7 +2450,7 @@ } /* Allocate memory for vectorized defs. */ - vec_defs = VEC_alloc (tree, heap, number_of_vects); + vec_defs = VEC_alloc (tree, heap, number_of_vects + 1); /* For reduction defs we call vect_get_constant_vectors (), since we are looking for initial loop invariant values. */ @@ -2827,7 +2827,7 @@ if (!SLP_TREE_VEC_STMTS (node)) { - SLP_TREE_VEC_STMTS (node) = VEC_alloc (gimple, heap, vec_stmts_size); + SLP_TREE_VEC_STMTS (node) = VEC_alloc (gimple, heap, vec_stmts_size + 1); SLP_TREE_NUMBER_OF_VEC_STMTS (node) = vec_stmts_size; } diff -Naur sources/gcc/tree-vect-stmts.c sources.patch/gcc/tree-vect-stmts.c --- sources/gcc/tree-vect-stmts.c 2012-03-12 12:31:42.000000000 +0100 +++ sources.patch/gcc/tree-vect-stmts.c 2012-03-20 15:14:28.000000000 +0100 @@ -2954,7 +2954,7 @@ FOR_EACH_VEC_ELT (tree, vec_oprnds0, i, vop0) { vop1 = ((op_type == binary_op || op_type == ternary_op) - ? VEC_index (tree, vec_oprnds1, i) : NULL_TREE); + ? ((i < VEC_length(tree, vec_oprnds1))?VEC_index (tree, vec_oprnds1, i) : VEC_index (tree, vec_oprnds1, VEC_length(tree, vec_oprnds1) - 1)) : NULL_TREE); vop2 = ((op_type == ternary_op) ? VEC_index (tree, vec_oprnds2, i) : NULL_TREE); new_stmt = gimple_build_assign_with_ops3 (code, vec_dest, When compiling attached small.c file with linaro-4.6-2012.03 configured with --enable-checking and gcc options : gcc -c small.c -msoft-float -march=armv7-a -mfloat-abi=softfp -mfpu=neon -mvectorize-with-neon-quad -ftree-vectorize -O2 I have a great number of assertion due to access to unallocated memory. patch from Bug #960274 plus attached patch fix them all (certainly badly) I have not done a very deep analysis but either analysis pass make a wrong decision when applying slp optimization or code is seriously bugged.
2012-03-20 17:03:08 Ulrich Weigand gcc-linaro: status New Confirmed
2012-03-20 17:03:11 Ulrich Weigand gcc-linaro: importance Undecided High
2012-03-20 17:03:14 Ulrich Weigand gcc-linaro: assignee Ulrich Weigand (uweigand)
2012-03-21 14:27:52 Ulrich Weigand gcc-linaro: status Confirmed In Progress
2012-03-21 17:28:57 Ulrich Weigand attachment added Handle WIDEN_LSHIFT_EXPR in vect_get_smallest_scalar_type https://bugs.launchpad.net/gcc-linaro/+bug/960283/+attachment/2911641/+files/lp960283.diff
2012-03-23 15:42:41 Ulrich Weigand bug watch added http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52686
2012-03-26 14:54:08 Ulrich Weigand nominated for series gcc-linaro/4.6
2012-03-26 14:54:08 Ulrich Weigand bug task added gcc-linaro/4.6
2012-03-26 14:54:08 Ulrich Weigand nominated for series gcc-linaro/4.7
2012-03-26 14:54:08 Ulrich Weigand bug task added gcc-linaro/4.7
2012-03-26 14:54:18 Ulrich Weigand gcc-linaro/4.7: status New In Progress
2012-03-26 14:54:21 Ulrich Weigand gcc-linaro/4.7: importance Undecided High
2012-03-26 14:54:23 Ulrich Weigand gcc-linaro/4.7: assignee Ulrich Weigand (uweigand)
2012-03-26 14:54:30 Ulrich Weigand gcc-linaro/4.6: milestone 4.6-2012.04
2012-03-26 14:54:34 Ulrich Weigand gcc-linaro/4.7: milestone 4.7-2012.04
2012-03-26 14:54:39 Ulrich Weigand gcc-linaro/4.6: status In Progress Fix Committed
2012-03-26 14:54:42 Ulrich Weigand gcc-linaro/4.7: status In Progress Fix Committed
2012-04-12 03:05:00 Michael Hope gcc-linaro/4.6: status Fix Committed Fix Released
2012-04-12 03:05:02 Michael Hope gcc-linaro/4.7: status Fix Committed Fix Released