alpha bootstrap failure wrt loop
Joern Rennecke
amylaar@cygnus.co.uk
Tue Feb 2 12:26:00 GMT 1999
> > Or actually, can someone tell me where the + 1 in
> >
> > max_uid_for_loop = get_max_uid () + 1;
> >
> > comes from? It's from
>
> Indeed, that seems to be the problem. get_max_uid already returns the
> next uid to be assigned - not the last one, as the name would suggest.
Here is a patch for this problem:
Tue Feb 2 20:24:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* loop.c (loop_optimize): Fix value max_uid_for_loop is reset
to after find_and_verify_loops call.
Index: loop.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/loop.c,v
retrieving revision 1.125
diff -p -r1.125 loop.c
*** loop.c 1999/02/02 11:52:00 1.125
--- loop.c 1999/02/02 20:23:11
*************** loop_optimize (f, dumpfile, unroll_p, bc
*** 525,535 ****
but moving this call to init_alias_analysis is more efficient. */
init_alias_analysis ();
! /* See if we went too far. */
if (get_max_uid () > max_uid_for_loop)
abort ();
/* Now reset it to the actual size we need. See above. */
! max_uid_for_loop = get_max_uid () + 1;
/* find_and_verify_loops has already called compute_luids, but it might
have rearranged code afterwards, so we need to recompute the luids now. */
--- 525,536 ----
but moving this call to init_alias_analysis is more efficient. */
init_alias_analysis ();
! /* See if we went too far. Note that get_max_uid already returns
! one more that the maximum uid of all insn. */
if (get_max_uid () > max_uid_for_loop)
abort ();
/* Now reset it to the actual size we need. See above. */
! max_uid_for_loop = get_max_uid ();
/* find_and_verify_loops has already called compute_luids, but it might
have rearranged code afterwards, so we need to recompute the luids now. */
More information about the Gcc-patches
mailing list