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]

Register renaming pass in gcc


Hi
My understanding of register renaming pass was allwas as
a pass running before scheduler renaming registers in a way to avoid
resuing single register again and again and avoid amount of fake
dependencies (such as antidepenencies)
So when for instance unrolled "memcpy" loops contains half a dozen
independent of loads and stores to same registers, these gets renamed
and code can be scheduled to perform memory stores later, once values
from loads are ready.

But the renaming pass in gcc seems to work after sched2 and don't
do such renaming, only renaming used to avoid instructions from
storing to same register as their argument is is performed.
There are some architectures prohibiting output register to be
conflicting with input ones, but this must be handledd sooner anyway

So what is this good for?  Is it sane plan to modify it to something
I've schetched above?

Honza

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