]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
parloops: Allow poly nit and bound
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Thu, 19 Oct 2023 17:27:18 +0000 (18:27 +0100)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Thu, 19 Oct 2023 17:27:18 +0000 (18:27 +0100)
Teach parloops how to handle a poly nit and bound e ahead of the changes to
enable non-constant simdlen.

gcc/ChangeLog:

* tree-parloops.cc (try_transform_to_exit_first_loop_alt): Accept
poly NIT and ALT_BOUND.

gcc/tree-parloops.cc

index a35f3d5023b06e5ef96eb4222488fcb34dd7bd45..80f3dd6dce281e1eb1d76d38bd09e6638a875142 100644 (file)
@@ -2531,14 +2531,15 @@ try_transform_to_exit_first_loop_alt (class loop *loop,
   tree nit_type = TREE_TYPE (nit);
 
   /* Figure out whether nit + 1 overflows.  */
-  if (TREE_CODE (nit) == INTEGER_CST)
+  if (poly_int_tree_p (nit))
     {
       if (!tree_int_cst_equal (nit, TYPE_MAX_VALUE (nit_type)))
        {
          alt_bound = fold_build2_loc (UNKNOWN_LOCATION, PLUS_EXPR, nit_type,
                                       nit, build_one_cst (nit_type));
 
-         gcc_assert (TREE_CODE (alt_bound) == INTEGER_CST);
+         gcc_assert (TREE_CODE (alt_bound) == INTEGER_CST
+                     || TREE_CODE (alt_bound) == POLY_INT_CST);
          transform_to_exit_first_loop_alt (loop, reduction_list, alt_bound);
          return true;
        }