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]

Re: dangerous cleverness? ppc int<->float conversions, subreg


On Nov  5, 2001, mike stump <mrs@windriver.com> wrote:

>> To: Zack Weinberg <zack@codesourcery.com>
>> Cc: Richard Henderson <rth@redhat.com>, gcc@gcc.gnu.org
>> From: Alexandre Oliva <aoliva@redhat.com>
>> Date: 04 Nov 2001 06:31:47 -0200

>> So I had to come up with separate patters to make sure the register
>> allocator wouldn't even consider assigning pseudos to FP registers,
>> and there goes your platform-independence :-(

> One can DO things like FIRST_FP_REGISTER, LAST_FP_REGISTER, or
> IS_FP_REGISTER and then in the mi parts of the compiler, use that to
> dissuade the allocator from using those resources in certain cases.

Hmm...  This sounds like a very good idea, indeed.  IS_FP_REGISTER is
definitely to be preferred, since it's more general (it's not too hard
to think of an architecture that initially had a small number of FP
registers, later extended :-)

We should also have IS_FP_REGISTER_CLASS, or perhaps some way to
disregard an arbitrary set of register classes (say
REGISTER_CLASS_ENABLED_P(C)) that the register allocator should also
use to avoid choosing some specific register class that would
eventually lead it to a dead end because no registers were available
in that class.

> Playing games with patterns, the more I think about it, the more I
> hate it.

I can't disagree with that.  I'm very happy you came up with a way for
us to avoid this need.

-- 
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    *Please* write to mailing lists, not to me


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