This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: wide-int, loop

On Sat, Nov 23, 2013 at 8:22 PM, Mike Stump <> wrote:
> Richi has asked the we break the wide-int patch so that the individual port and front end maintainers can review their parts without have to go through the entire patch.    This patch covers the loop code.
> Ok?

@@ -2662,8 +2661,8 @@ iv_number_of_iterations (struct loop *loop, rtx
insn, rtx condition,
       iv1.step = const0_rtx;
       if (INTVAL (iv0.step) < 0)
-         iv0.step = simplify_gen_unary (NEG, comp_mode, iv0.step, mode);
-         iv1.base = simplify_gen_unary (NEG, comp_mode, iv1.base, mode);
+         iv0.step = simplify_gen_unary (NEG, comp_mode, iv0.step, comp_mode);
+         iv1.base = simplify_gen_unary (NEG, comp_mode, iv1.base, comp_mode);
       iv0.step = lowpart_subreg (mode, iv0.step, comp_mode);

separate bugfix?

@@ -1378,7 +1368,8 @@ decide_peel_simple (struct loop *loop, int flags)
   /* If we have realistic estimate on number of iterations, use it.  */
   if (get_estimated_loop_iterations (loop, &iterations))
-      if (double_int::from_shwi (npeel).ule (iterations))
+      /* TODO: unsigned/signed confusion */
+      if (wi::leu_p (npeel, iterations))
          if (dump_file)

what does this refer to?  npeel is unsigned.

Otherwise looks good to me.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]