Scheduler

phani narasimhan venkata sesha myreddy phani.sesha@wipro.com
Wed Jul 26 08:09:00 GMT 2000


sir,
i am using gcc for ultrasparc scheduling.

i have a general doubt on the ordering of the phase in the gcc.

why is the following procedure followed in gcc.

The scheduler in gcc is run before register-coloring.
And then a local scheduling is done after register coloring.
And then delay branch scheduling is done after the scheduling again.

can i know why is it done like this way.

I read in some papers the following things:
1) As the freedom is less once we map virtual-registers to
hard-registers
    so the global-scheduler should be run before register coloring. This

    counters the argument that the number of globals increase.

2)The local scheduling is done after register coloring as it might have
   introduced some insns which may need to be handled. And the
scheduling
   is a local scheduling only, my assumption is that the register
coloring
   inserts spill and restores which are local to the block so only local

   scheduling is sufficient.

3)The delay branch scheduling is done after the second scheduling. why?
    It doesn't breaks the groups formed by the scheduler for
superscalars.

what if local scheduler is run after delay-branch scheduler.

Hoping an early answer to my doubts.
Thanking you.
sincierly,
phani.









More information about the Gcc-help mailing list