This is the mail archive of the gcc-patches@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: [new-ra] constraint modifiers bugfix, spilling dead webs


Hi Denis,

On Sun, 14 Dec 2003, Denis Chertykov wrote:

>  - wrong handling of '#' constraint modifier;

Of course this now means, that you might end up with more reloads later.
I think this change will make the code worse.  You now unconditionally
ignore hints for register preferences which possibly broaden the available
registers for a web.  There are examples of such insns on e.g. x86, where
the hints behind '#' are used to prefer something like GENERAL_REGS
although the individual alternatives just accept a subset of that (but all
alternatives together cover the whole set).  I think with ignoring
anything after '#' you artificially limit the freedom.  It's only
necessary to do this if a match was already seen, and even that only due
to some unfortunate behaviour in pre-reload (IIRC it was partly
overwriting information for some insn patterns if they weren't really
correct but worked with the old allocator).

>  - wrong handling of '*' constraint modifier;

The documentation of '*' says that only the next letter (not the whole
rest of alternative) is ignored for register preferences.


Ciao,
Michael.


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