This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: suspected bug in reorg.c
- To: Alan Lehotsky <lehotsky at tiac dot net>
- Subject: Re: suspected bug in reorg.c
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Sun, 21 Jun 1998 01:56:19 -0600
- cc: egcs-bugs at cygnus dot com, kenner at vlsi1 dot ultra dot nyu dot edu, tiemann at cygnus dot com
- Reply-To: law at cygnus dot com
In message <v04011701b1b19489f0e8@[192.168.1.254]>you write:
> In reorg, it looks to me like the code carefully evaluates the function
> for the slot, but then in the backward's scan, it pushes the SECOND
> delay candidate instruction it finds onto the front of the list - so now,
> the slots aren't aligned with the "case" that matches.
I believe this is done on purpose. The first candidate found actually
executes last and therefore should be in the last delay slot, additional
candidates are put in earlier delay slots until all the slots are filled.
Thus the order of insns in the delay slots will match their order before
they were moved into the delay slot.
> As far as I can tell, none of the ports in the EGCS distribution
> have delay slots like this.
Right. I don't believe any targets in egcs or gcc2 have more than one
delay slot. Thus the code to handle mutliple delay slots isn't used
often and thus likely has some bugs.
Seems to me that "slots_filled" isn't the right concept -- somehow we
need to tell eligible_for_delay "we are filling slot # X".
jeff