This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Some Haifa scheduler bugs
- To: Bernd Schmidt <crux at Pool dot Informatik dot RWTH-Aachen dot DE>
- Subject: Re: Some Haifa scheduler bugs
- From: Jeffrey A Law <law at hurl dot cygnus dot com>
- Date: Mon, 01 Sep 1997 21:41:51 -0600
- cc: egcs at cygnus dot com
- Reply-To: law at cygnus dot com
> I think you won't get the right return value. You want to return the
> last insn in a SCHED_GROUP or a note that was placed after it.
> I had my reasons to use two loops ;)
You're right. Seems to me that the return value for move_insn should
always be the return value from the first call to reemit_notes. Correct?
In which case it's pretty simple to record the return value from
the first call to reemit_notes.
And I don't doubt you had good reasons to use two loops; I just want
to make absolutely sure I understand the problem. Handling of notes
and SCHED_GROUP_P insns have both been particularly difficult areas
of the scheduler to implement correctly.
> The whole affair with SCHED_GROUP_P is extremely messy.
Agreed.
> How about using extra data structures that describe which insns
> to schedule together, which notes to put before them, and the
> dependencies between them.
I'm all for it.
> scheduled together with an insn might make the code clearer. I think it
> would fit in better with the fact that Haifa schedules forward. I didn't
> try it, though; maybe there are problems with that approach, too.
Well, haifa does both forward and backward analysis -- so it might
just move the problematical code elsewhere in the scheduler.
jeff