Make SPEC2000 and the new allocator

Daniel Berlin dberlin@dberlin.org
Thu Jul 18 09:56:00 GMT 2002


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.

> Until webclass is real we need to constrain ourself to GENERAL_REGS 
> here,
> so:
>
> OK?
>

Bad idea, won't this will possibly screw performance on other 
architectures who don't have this problem?  Or is GENERAL_REGS supposed 
to contain all the regs we'd ever want to use as spill regs? (I can 
never remember the class names->use mapping)
If not, why don't we just add a new register class on all architectures 
labeled "SPILL_REGS" or something, so we can know *exactly* what 
registers we might be allowed to use for spills (in case we ever run 
into some architecture with extra-funky restrictions or something).

> Ciao,
> Michael.
> -- 
> 	* ra-build.c (remember_web_was_spilled): Use GENERAL_REGS.
>
> Index: ra-build.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/ra-build.c,v
> retrieving revision 1.3
> diff -u -p -r1.3 ra-build.c
> --- ra-build.c	16 Jul 2002 11:29:14 -0000	1.3
> +++ ra-build.c	18 Jul 2002 16:23:24 -0000
> @@ -2349,7 +2349,8 @@ remember_web_was_spilled (web)
>  			reg_class_contents[reg_alternate_class (web->regno)]);
>      }
>    else
> -    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]);
>    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
>
>



More information about the Gcc-patches mailing list