This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RCSP and modulo scheduling


Jim Wilson wrote:

> >         Is RCSP suppose to be a complete solution for software pipelining
> > or used in conjunction with modulo scheduling?  The GCC IA-64 Wish List
> > and GCC IA-64 Summit both seem to imply that RCSP is a fallback when
> > modulo scheduling cannot be applied.  Should both be implemented and work
> > together for a complete solution?
>
> There was a previous thread that discussed some of the issues here.
> See for instance...
>         http://gcc.gnu.org/ml/gcc/2002-09/msg01263.html
>
>

Just one addition for the message mentioned by Jim:

"  Machine independent implementation of modulo scheduling requires to
use the old or DFA pipeline description.  Unfortunately, the DFA
pipeline hazard recognizer is not good enough to support modulo
scheduling (it needs more interface functions).  But the support could
be provided."

DFA pipeline hazard recognizer could be easily used for modulo scheduling without
the additional support.

To implement modulo scheduling we need to make a union of the state after
instruction issue and the states gotten from the it by advancing the simulated
processor cycle by II * n, where II is the initiation interval and n is 1, 2, 3
and so on.  N could be constrained by a value which results in the state
designating no functional unit reservations.  Actually, we could implement the
union of states as simply a set of the states.  It could be a part of module
scheduling not the pipeline hazard recognizer interface.

It is easy although usually recognizing pipeline hazards for software pipelining
(reservation tables are usually used there) is more complicated than the same
thing for insn scheduling.

Vlad



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]