Balaji S <[EMAIL PROTECTED]> writes:

> >>So you have a few instructions bundled into a VLIW instruction, and
> >>one of the instructions in the bundle is moved into the delay slot,
> >>thus breaking your VLIW bundle.  Right?
> > I think there are two natural approaches.
> > 1) Do the VLIW bundling after delayed branch scheduling.  The way to
> >    do that is to the bundling in TARGET_ASM_FUNCTION_PROLOGUE.  The
> >    FRV backend does this.  I've done this successfully in the past.
> I think this is a good workaround but nullifying the possibility of having a 
> VLIW bundled instruction in a branch delay slot.

Well, you can have multiple instructions in a delay slot by pretending
that there are multiple delay slots.  You have to write the delay slot
conditions such that the selected instructions can always form a
bundle.  This is clearly getting a little tricky.

> > 2) When you do the VLIW bundling, put the instructions into a
> >    PARALLEL.
> I think this is the right solution which rectifies the problems. Please 
> provide the pointer to where it has to be done.

I've never actually done it this way myself.  I guess the
TARGET_SCHED_FINISH hook would be the place to tie the instructions
together.

Ian

Reply via email to