This is the mail archive of the
mailing list for the GCC project.
Re: Scheduling and inserting NOPs
Boris Boesler writes:
> Am 22.11.2007 um 17:28 schrieb Andrew Haley:
> > I'd still do what I suggested: walk the instruction list inserting
> > NOPs, first based on the information from sched, and if that doesn't
> > work out because stuff has moved, just count instructions to make sure
> > you don't violate the constraints.
> Where is the sched info?
You just told me that "someone simply stored cycle and insn (recorded
in TARGET_SCHED_REORDER) in a hash-table and reused this info in
TARGET_MACHINE_DEPENDENT_REORG." That info.
> I'm following another approach:
> I "cache" the last n insns and check with my bypass guard function
> if the bypass will be ignored. If the bypass will be ignored then I
> have to insert NOPs. This works basically, but there are two obstacles:
> 1) in the future I have to check the scheduling across basic block
Ooh, that really is nasty; you'll need the CFG for that.
> 2) the approach fails if instruction fill a branch delay slots; NOPs
> are not inserted at all because I can't handle the sequence at the
I suspect this is what Ian was referring to. In any case, you're well
on the way now, by the sounds of it.
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK
Registered in England and Wales No. 3798903