This is the mail archive of the egcs@egcs.cygnus.com mailing list for the EGCS project. See the EGCS home page for more information.
> I would make a new diff if I could connect to egcs.cygnus.com .
Well, the connection is back again, so here is the patch.
In the meantime, the bootstrap has finished successfully.
Wed Feb 24 00:49:25 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* loop.c (loop_insn_first_p): Faster implementation.
Index: loop.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/loop.c,v
retrieving revision 1.145
diff -p -r1.145 loop.c
*** loop.c 1999/02/22 14:11:55 1.145
--- loop.c 1999/02/24 18:26:54
*************** maybe_eliminate_biv (bl, loop_start, end
*** 8112,8125 ****
This is like insn_first_p, except that we use the luid information if
available. */
! static int
loop_insn_first_p (insn, reference)
rtx insn, reference;
{
! return ((INSN_UID (insn) < max_uid_for_loop
! && INSN_UID (reference) < max_uid_for_loop)
! ? INSN_LUID (insn) < INSN_LUID (reference)
! : insn_first_p (insn, reference));
}
/* We are trying to eliminate BIV in INSN using GIV. Return non-zero if
--- 8110,8139 ----
This is like insn_first_p, except that we use the luid information if
available. */
! int
loop_insn_first_p (insn, reference)
rtx insn, reference;
{
! rtx p, q;
!
! for (p = insn, q = reference; ;)
! {
! /* Start with test for not first so that INSN == REFERENCE yields not
! first. */
! if (q == insn || ! p)
! return 0;
! if (p == reference || ! q)
! return 1;
!
! if (INSN_UID (p) < max_uid_for_loop
! && INSN_UID (q) < max_uid_for_loop)
! return INSN_LUID (p) < INSN_LUID (q);
!
! if (INSN_UID (p) >= max_uid_for_loop)
! p = NEXT_INSN (p);
! if (INSN_UID (q) >= max_uid_for_loop)
! q = NEXT_INSN (q);
! }
}
/* We are trying to eliminate BIV in INSN using GIV. Return non-zero if