Some Haifa scheduler bugs
Jeffrey A Law
law@hurl.cygnus.com
Mon Sep 1 20:42:00 GMT 1997
> 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
More information about the Gcc
mailing list