[Bug middle-end/60534] ICE: in expand_GOMP_SIMD_VF, at internal-fn.c:142 with -fopenmp -O -fno-tree-loop-optimize and #pragma omp simd reduction
mpolacek at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 17 08:19:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60534
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-03-17
CC| |mpolacek at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Confirmed. expand_omp_simd has for this case:
6837 /* If not -fno-tree-loop-vectorize, hint that we want to vectorize
6838 the loop. */
6839 if ((flag_tree_loop_vectorize
6840 || (!global_options_set.x_flag_tree_loop_vectorize
6841 && !global_options_set.x_flag_tree_vectorize))
6842 && loop->safelen > 1)
6843 {
6844 loop->force_vect = true;
6845 cfun->has_force_vect_loops = true;
6846 }
but gate_tree_loop_vectorize isn't called at all, because gate_tree_loop
returns false. So maybe:
--- gcc/tree-ssa-loop.c
+++ gcc/tree-ssa-loop.c
@@ -47,7 +47,7 @@ along with GCC; see the file COPYING3. If not see
static bool
gate_tree_loop (void)
{
- return flag_tree_loop_optimize != 0;
+ return flag_tree_loop_optimize != 0 || cfun->has_force_vect_loops;
}
namespace {
More information about the Gcc-bugs
mailing list