infinite loop compiling aboot.i on alpha
Richard Henderson
rth@cygnus.com
Tue Nov 30 23:39:00 GMT 1999
On Thu, Nov 11, 1999 at 01:26:45PM -0500, Brad Lucier wrote:
> it seems to get stuck in an infinite loop.
[...]
> #0 __divl () at ../sysdeps/alpha/divrem.h:175
> #1 0x1200f2914 in unroll_loop (loop_end=0x20000551b00, insn_count=5,
> loop_start=0x20000551940, end_insert_before=0x20000554040,
> loop_info=0x120329948, strength_reduce_p=0) at ../../gcc/unroll.c:390
Yes indeed. Assign 0x1_0000_0000 to a 32-bit int and try
to find the non-zero factor, and you'll be searching a while.
r~
* unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
Index: unroll.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/unroll.c,v
retrieving revision 1.77
diff -c -p -d -r1.77 unroll.c
*** unroll.c 1999/11/02 16:37:23 1.77
--- unroll.c 1999/11/12 20:39:39
*************** unroll_loop (loop_end, insn_count, loop_
*** 234,240 ****
struct loop_info *loop_info;
int strength_reduce_p;
{
! int i, j, temp;
int unroll_number = 1;
rtx copy_start, copy_end;
rtx insn, sequence, pattern, tem;
--- 234,241 ----
struct loop_info *loop_info;
int strength_reduce_p;
{
! int i, j;
! unsigned HOST_WIDE_INT temp;
int unroll_number = 1;
rtx copy_start, copy_end;
rtx insn, sequence, pattern, tem;
More information about the Gcc-bugs
mailing list