Is this a bug in doloop.c?
James E Wilson
wilson@specifixinc.com
Tue Aug 31 02:10:00 GMT 2004
John Lu wrote:
> in order for the loop to iterate N times. Currently, if the
> exit test is:
> (if_then_else (ge (match_operand:QI 0 "register_operand" "")
> (const_int 0))
> the looping register is set to N-1.
The point of this code is to detect loops that exit when the iterator
reaches -1. So checking for const1_rtx instead of const0_rtx makes no
sense here.
However, looking at current code in the loop-doloop.c file, I see that
there have been a number of changes. decrement_count has been replaced
with increment_count, and it is now set to false here. This file has
been largely rewritten.
It is likely that your problem is already fixed on mainline. However, I
can't be sure of this, as you didn't give us a testcase, or much
explanation of what was going wrong.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
More information about the Gcc
mailing list