]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR rtl-optimization/89768 (ICE in compare_and_jump_seq at loop-unroll...
authorJakub Jelinek <jakub@redhat.com>
Fri, 30 Aug 2019 12:27:50 +0000 (14:27 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 30 Aug 2019 12:27:50 +0000 (14:27 +0200)
Backported from mainline
2019-03-19  Jakub Jelinek  <jakub@redhat.com>

PR rtl-optimization/89768
* loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
instead of GEN_INT.
(unroll_loop_runtime_iterations): Likewise.

From-SVN: r275137

gcc/ChangeLog
gcc/loop-unroll.c

index ab9eb91f95cb0630945364d2f8a2383969faf037..9970d4e367216ef308a01ef8c21fe60a2ecdc443 100644 (file)
@@ -3,6 +3,11 @@
        Backported from mainline
        2019-03-19  Jakub Jelinek  <jakub@redhat.com>
 
+       PR rtl-optimization/89768
+       * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
+       instead of GEN_INT.
+       (unroll_loop_runtime_iterations): Likewise.
+
        PR target/89752
        * gimplify.c (gimplify_asm_expr): For output argument with
        TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
index 21959f716b1e49668da87d85fc11cf8168f054aa..0f76bddaa89ba1fbcc7e3bbfcfa718febe37ba53 100644 (file)
@@ -630,7 +630,7 @@ unroll_loop_constant_iterations (struct loop *loop)
   if (loop->any_likely_upper_bound)
     loop->nb_iterations_likely_upper_bound
       = wi::udiv_trunc (loop->nb_iterations_likely_upper_bound, max_unroll + 1);
-  desc->niter_expr = GEN_INT (desc->niter);
+  desc->niter_expr = gen_int_mode (desc->niter, desc->mode);
 
   /* Remove the edges.  */
   FOR_EACH_VEC_ELT (remove_edges, i, e)
@@ -996,7 +996,8 @@ unroll_loop_runtime_iterations (struct loop *loop)
       preheader->frequency += iter_freq;
       preheader->count += iter_count;
       single_succ_edge (preheader)->count = preheader->count;
-      branch_code = compare_and_jump_seq (copy_rtx (niter), GEN_INT (j), EQ,
+      branch_code = compare_and_jump_seq (copy_rtx (niter),
+                                         gen_int_mode (j, desc->mode), EQ,
                                          block_label (preheader), p,
                                          NULL);