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.
[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Subject Index] [Author Index] [Thread Index]
Re: 19990223 trunk build runs around in circles in insn_first_p in rtlanal.c compiling 1500+ line Fortran source :-)
- To: toon@moene.indiv.nluug.nl, wilson@cygnus.com, law@cygnus.com
- Subject: Re: 19990223 trunk build runs around in circles in insn_first_p in rtlanal.c compiling 1500+ line Fortran source :-)
- From: Joern Rennecke <amylaar@cygnus.co.uk>
- Date: Wed, 24 Feb 1999 02:01:31 +0000 (GMT)
- Cc: egcs@cygnus.com
- Delivered-To: listarch-egcs@egcs.cygnus.com
- Delivered-To: mailing list egcs@egcs.cygnus.com
- In-Reply-To: <199902240052.AAA31821@phal.cygnus.co.uk> from Joern Rennecke at "Feb 24, 99 00:52:27 am"
- Mailing-List: contact egcs-help@egcs.cygnus.com; run by ezmlm
- Sender: owner-egcs@egcs.cygnus.com
> ! if (INSN_UID (p) < max_uid_for_loop
> ! && INSN_UID (q) < max_uid_for_loop)
> ! return INSN_LUID (p) < INSN_LUID (q);
> !
> ! /* 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;
... and that's the wrong order. If INSN_UID (p) >= max_uid_for_loop,
INSN_UID (reference) < max_uid_for_loop, and NEXT_INSN (p) == reference,
we get the wrong result in the next iteration.
Therefore, the equality tests have to precede the unequality tests.
I would make a new diff if I could connect to egcs.cygnus.com .