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