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]

Re: i386 fix


> On Thu, Jul 27, 2000 at 06:39:37PM +0200, Jan Hubicka wrote:
> > The loops in reload seems to suggest this theory and all the macros
> > like HARD_REGNO_MODE_OK etc. just accept it and the SECONDARY_MEMORY_NEEDED
> > claims that direct move is possible.
> 
> But the registers are in NO_REGS, so they should never be selected,
> since they are not of the correct class.
Hi,
Here is an update:
the register 19(dirflag) is regulaly choosen by find_reg in global.c,
since the alternate class of register 67 is ALL_REGS. The costs are like:

  Register 67 costs: NO_REGS:0 AREG:402 DREG:402 CREG:402 BREG:402 SIREG:402 DIREG:402 AD_REGS:402 Q_REGS:402 NON_Q_REGS:414 INDEX_REGS:414 GENERAL_REGS:414 FP_TOP_REG:0 FP_SECOND_REG:0 FLOAT_REGS:0 SSE_REGS:414 MMX_REGS:414 FLOAT_INT_REGS:402 ALL_REGS:414 MEM:201

I will try to figure out why MEM gets out so cheap, but this is an indepdendent
issue.  Is it OK to install the patch?  I still believe that it is better
to have these fixed to avoid global alloc and other passes from considering
these for the register allocation purposes and to avoid need to model
these properly in all the register allocation macros (as the flags are)

The cost of MEM can be made "more normal" by one of my older regcalss patches
fixing the cost of multiple-alternate constraints. This patch was never
reviewed and waits at http://gcc.gnu.org/ml/gcc-patches/1999-12n/msg01026.html.
Even when it is called "propagation patch" it is indpednent on my propagation
bits, that has been never reviewed too and is IMO important for sane results
out of multiple-alternative constraints. (a hint :)
With this patch we would not be forced to write hords of
#class_from_other_alternative strings in constraints and the costs more match
reality.

Even w/o the patch imo the MEM's cost ought to be higher so I will try to look
for other purposes as well.

Honza

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