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?
> We have done the modulo scheduling and rotating register allocation for
>GCC C compiler for IA64.
It isn't clear what you have done. Modify an existing optimization pass?
Add a new optimization pass? Add it where? What exactly does this new
code do?
> 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?
We don't have enough info to answer this question. However, it is a reasonable
assumption that all following optimization passes will perform code transforms
that destroy your modulo scheduled loops unless you do something to protect
them. Perhaps a new RTL construct that indicates a loop that should be left
untouched because it is already scheduled and register allocated. Or maybe
this info can go in the CFG. This won't be very useful unless done very late
in the compiler. Otherwise we will lose too many other optimizations.
You may still need to perform some operations like reload, and if you do need
any reloads, then that is going to mess up your modulo scheduled loop. So
you probably need to do something to deal with this problem.
> 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?
I can't even hazard a guess at this. You will probably have to figure it out
yourself.
Jim