Re.Scheduler.
phani narasimhan venkata sesha myreddy
phani.sesha@wipro.com
Wed Jul 26 22:48:00 GMT 2000
sir,
Thankyou for the answer.
delay-branch scheduler introduces new labels and branches will
jump into middle of the block. So calculation of life information
becomes difficult or is it impossible.
Due to the conditional branches and annuling, the registers live
at the end of the block is not simple union of the live registers
of it sucessors. The insns in the delay-slot should be considered.
But this adds to more complexity only.
execuse me, i do no much on the design, and all the things, that
went in are great, to take gcc this golden shape.
Thankyou.
phani.
-----------------------------------------------------------------------
In message < 397EFF0C.6052A5B4@wipro.com >you write:
>
> what if local scheduler is run after delay-branch scheduler.
It won't work because the scheduler doesn't know about the constructs
used to represent delayed branches, the delayed branch pass also mucks
up
the cfg (which the scheduler depends on) and the delayed branch mucks up
the lifetime information.
jeff
-----------------------------------------------------------------------
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.
-----------------------------------------------------------------------------
More information about the Gcc-help
mailing list