http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48673
--- Comment #7 from Andrey Belevantsev <abel at gcc dot gnu.org> 2011-05-06 12:33:39 UTC --- (In reply to comment #6) > (In reply to comment #5) > > Or schedule_block could have a mode of preserving the existing insn order, > > which can also be useful for testing purposes. If this sounds like an > > overkill, something like sel-sched.c:reset_sched_cycles_in_current_ebb > > could be > > adapted to work. This function feeds the bb insns to DFA but also follows > > the > > old schedule w.r.t. to dependency latencies. Not having the old schedule > > would > > mean that we would honor only DFA latencies reflected in insn cycles and > > TImodes, but this may be enough. > > That sounds fragile. The DFA is not sufficient to produce an accurate schedule > on all targets. If SMS produces a schedule it might as well mark it with > accurate uses of TImode. But sms works too early. There is no guarantee that TImode markers will live until machreorg, where we need them. Also, for the before reload scheduler there is no guarantee the schedule would be fully accurate. If you are saying that just DFA is not enough for making proper TImodes, then IMHO the only choice is to have the full run of schedule_block preserving insn order and taking into account all of DFA/dependency/target hook stuff just before the machreorg pass.