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]
Other format: [Raw text]

Re: regclass.c: scan_one_insn special casing


Hi,

On Sat, 27 Mar 2004, Eric Christopher wrote:

> There's this code in scan_one_insn:
> 
> 
> That appears to do something a port specific splitter would do.

I disagree.  It's in the generic code specifically that _no_ port specific
splitters have to do this.  If there are splitters just doing this they
should be removed.  And if they do something more it should be analyzed
why they are doing this and it should be considered to add this to the
generic code in order to enable the removing of the port specific hacks.

If anything the place of that code seems to be a bit strange, at least
from current perspective.  After these many years we might have a better
place.  OTOH it has to examine the insn constraints and the earliest point
GCC is doing this is in regclass.  Clearly it would be even better if
reload wouldn't do the stupid thing which this code is supposed to help.

> I've also looked and mips has a splitter that does something similar,
> I'm not sure about other ports. I'm also really curious what port this
> was added in for and perhaps the testcase...

Well, the comment is quite clear.  For all two address machines.  I would
be more interested to know why port specifics doing the same (or something
similar) were added.

> I added an abort () right after the if statement above, and bootstrapped
> and tested on x86-linux, mips-elf, sh-elf, arm-elf and couldn't trip it.

Probably because of the define_splits?


Ciao,
Michael.


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