summaryrefslogtreecommitdiff
path: root/gcc/loop-unroll.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-03-19 20:04:14 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2019-03-19 20:04:14 +0100
commit2a23a1c39fb33df0277abd4486a3da64ae5e62c2 (patch)
tree54c3c251350ec1e257162d8ab01537dda078a455 /gcc/loop-unroll.c
parentea5ac5a69b4b474bb221051e705f98d8599253fa (diff)
re PR rtl-optimization/89768 (ICE in compare_and_jump_seq at loop-unroll.c:838)
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: r269812
Diffstat (limited to 'gcc/loop-unroll.c')
-rw-r--r--gcc/loop-unroll.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/loop-unroll.c b/gcc/loop-unroll.c
index bc7840e4bfa..1b4c73b61c8 100644
--- a/gcc/loop-unroll.c
+++ b/gcc/loop-unroll.c
@@ -652,7 +652,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)
@@ -1020,9 +1020,9 @@ unroll_loop_runtime_iterations (struct loop *loop)
preheader = split_edge (loop_preheader_edge (loop));
/* Add in count of edge from switch block. */
preheader->count += iter_count;
- branch_code = compare_and_jump_seq (copy_rtx (niter), GEN_INT (j), EQ,
- block_label (preheader), p,
- NULL);
+ branch_code = compare_and_jump_seq (copy_rtx (niter),
+ gen_int_mode (j, desc->mode), EQ,
+ block_label (preheader), p, NULL);
/* We rely on the fact that the compare and jump cannot be optimized out,
and hence the cfg we create is correct. */