This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: How will scheduler take care of modulo scheduling?
- From: Ritu Sabharwal <ritu at csa dot iisc dot ernet dot in>
- To: Vladimir Makarov <vmakarov at redhat dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Thu, 19 Dec 2002 13:44:59 +0530 (IST)
- Subject: Re: How will scheduler take care of modulo scheduling?
Hi,
Please give mne the details of how to modify the existing scheduler to
incorporate the modulo scheduler. Will thus checking of loop start and
loop end work fine? Does we nned to consider any timing constraints for
this?
Modulo Scheduler is completed but please tell me the right way of
integrating this with the insn scheduler.
Best,
Ritu.
On Tue, 10 Dec 2002, Vladimir
Makarov wrote:
> Ritu Sabharwal wrote:
> >
> > Hi,
> > We have done the modulo scheduling and rotating register allocation for
> > GCC C compiler for IA64. But we don't know how will gcc'c scheduler and
> > register allocator take care of this modulo scheduling and register
> > allocation. Do we need to modify the existing scheduler and register
> > allocator or need to write our own which considers the modulo scheduling
> > and rotating register allocation? If modification is to done, what are
> > those modifications and if new scheduler and allocator is to be written,
> > what is the scheme of doing that?
> >
>
> Writing insn scheduler and register allocator is a bigger work than
> modulo scheduling. So I'd not advice to write own ones especially if
> you are novices for gcc. Because they should work for all gcc
> platforms.
>
> So the simplest approach is to modify them. It could be done in the
> same way as for RCSP (which is not in the public repository yet). RCSP
> puts notes about start and finish of each software pipelining loop. The
> insn scheduler looks at such notes and do nothing for code between the
> notes.
>
> The same idea (it was actually Richard Henderson's idea) could be used
> for register allocator. You could transfer information about registers
> used in pipelined loops through notes or in other ways, the register
> allocation could not use them for the register allocation.
>
> Vlad
>