This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Register renaming pass in gcc
- To: egcs at egcs dot cygnus dot com
- Subject: Register renaming pass in gcc
- From: Jan Hubicka <hubicka at atrey dot karlin dot mff dot cuni dot cz>
- Date: Mon, 17 Apr 2000 14:56:03 +0200
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