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: Make SPEC2000 and the new allocator


> 
> On Thursday, July 18, 2002, at 12:28  PM, Michael Matz wrote:
> 
> >Hi,
> >
> >this fixes a misunderstanding on my side, where the allocator on
> >x86 sometimes assignes registers from MMX_REGS to the stack pseudos.
> Err, so?
> 
> Intel's compiler does the same thing.

You can't do that on pre P4 machines as you need femms.
> >-    COPY_HARD_REG_SET (web->usable_regs, reg_class_contents[(int) 
> >ALL_REGS]);
> >+    COPY_HARD_REG_SET (web->usable_regs,
> >+		       reg_class_contents[(int) GENERAL_REGS]);

I believe you want:
/* Find the largest class for which every register number plus N is
   valid in M1 (if in range) and is cheap to move into REGNO.
   Abort if no such class exists.  */

static enum reg_class
find_valid_class (m1, n, dest_regno)

With dest_regno replaced by dest_class (the function don't use regno
anyway)

Honza
> >   AND_COMPL_HARD_REG_SET (web->usable_regs, never_use_colors);
> >   prune_hardregs_for_mode (&web->usable_regs, PSEUDO_REGNO_MODE 
> >(web->regno));
> > #ifdef CLASS_CANNOT_CHANGE_MODE
> >
> >


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