Reducing RTL allocations

Alexandre Oliva aoliva@redhat.com
Tue Jun 11 18:05:00 GMT 2002


On Jun  9, 2002, law@redhat.com wrote:

> In message <orbsaly8lj.fsf@free.redhat.lsd.ic.unicamp.br>, Alexandre Oliva writes:

> How could regrename safely modify any reg in-place since some of the hard
> regs is sees come from pseudos which were turned into hard regs (which are
> shared).

This is what I saw:

static void
do_replace (chain, reg)
     struct du_chain *chain;
     int reg;
{
  while (chain)
    {
      unsigned int regno = ORIGINAL_REGNO (*chain->loc);
      *chain->loc = gen_raw_REG (GET_MODE (*chain->loc), reg);
      if (regno >= FIRST_PSEUDO_REGISTER)
	ORIGINAL_REGNO (*chain->loc) = regno;
      chain = chain->next_use;
    }
}

I misread it as modifying the reg in place.  Somehow I managed to miss
the intervening gen_raw_REG.  D'oh.  Sorry about the noise :-(

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist                Professional serial bug killer



More information about the Gcc-patches mailing list