On Nov 26, 2013, at 1:14 AM, Richard Biener <[email protected]> wrote:
>>> @@ -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?
>>
>> most likely. i will submit separately.
>>
>>> @@ -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.
>>
>>
>> it was the fact that they were doing the from_shwi and then using an
>> unsigned test.
>
> Ah - probably a typo. Please just remove the "TODO".
Done:
Index: loop-unroll.c
===================================================================
--- loop-unroll.c (revision 206183)
+++ loop-unroll.c (working copy)
@@ -1371,7 +1371,6 @@ decide_peel_simple (struct loop *loop, i
/* If we have realistic estimate on number of iterations, use it. */
if (get_estimated_loop_iterations (loop, &iterations))
{
- /* TODO: unsigned/signed confusion */
if (wi::leu_p (npeel, iterations))
{
if (dump_file)
>>> Otherwise looks good to me.
Kenny hasn't yet integrated the first into trunk, but I'd like to ask anyway:
Ok?