[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