omp-low.c (lower_oacc_head_tail): Assert there is at least one marker.
authorNathan Sidwell <nathan@codesourcery.com>
Mon, 2 May 2016 18:27:40 +0000 (18:27 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Mon, 2 May 2016 18:27:40 +0000 (18:27 +0000)
* omp-low.c (lower_oacc_head_tail): Assert there is at least one
marker.
(oacc_loop_process): Check mask for loop termination.

From-SVN: r235775

gcc/ChangeLog
gcc/omp-low.c

index 051b87135417c10e6fee88a20b882d72223b6090..a527809c79cba07ed3c45a252e8e5afa649a60be 100644 (file)
@@ -1,3 +1,9 @@
+2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * omp-low.c (lower_oacc_head_tail): Assert there is at least one
+       marker.
+       (oacc_loop_process): Check mask for loop termination.
+
 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
 
        * cif-code.def (CIF_THUNK): Add.
index e4a1e4746db2e397343339a85669d03e3a371790..048c8798ad5a7a80dca73ca542f7feeac9a9de90 100644 (file)
@@ -6402,12 +6402,10 @@ lower_oacc_head_tail (location_t loc, tree clauses,
   gimple_seq_add_stmt (head, gimple_build_assign (ddvar, integer_zero_node));
 
   unsigned count = lower_oacc_head_mark (loc, ddvar, clauses, head, ctx);
-  if (!count)
-    lower_oacc_loop_marker (loc, ddvar, false, integer_zero_node, tail);
-  
   tree fork_kind = build_int_cst (unsigned_type_node, IFN_UNIQUE_OACC_FORK);
   tree join_kind = build_int_cst (unsigned_type_node, IFN_UNIQUE_OACC_JOIN);
 
+  gcc_assert (count);
   for (unsigned done = 1; count; count--, done++)
     {
       gimple_seq fork_seq = NULL;
@@ -19331,10 +19329,8 @@ oacc_loop_process (oacc_loop *loop)
 
       oacc_loop_xform_loop (loop->head_end, loop->ifns, mask_arg, chunk_arg);
 
-      for (ix = 0; ix != GOMP_DIM_MAX && loop->heads[ix]; ix++)
+      for (ix = 0; ix != GOMP_DIM_MAX && mask; ix++)
        {
-         gcc_assert (mask);
-
          while (!(GOMP_DIM_MASK (dim) & mask))
            dim++;