This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: new allocator: registers preferences
- To: Michael Matz <matzmich at cs dot tu-berlin dot de>
- Subject: Re: new allocator: registers preferences
- From: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Date: Wed, 28 Feb 2001 22:03:05 +0100
- CC: Denis Chertykov <denisc at overta dot ru>, gcc-patches at gcc dot gnu dot org, Daniel Berlin <dberlin at redhat dot com>
- Organization: Moene Computational Physics, Maartensdijk, The Netherlands
- References: <Pine.GSO.4.33.0102252333020.27428-100000@platon>
Michael Matz wrote:
> On Sun, 25 Feb 2001, Denis Chertykov wrote:
> > Sun Feb 25 22:14:13 2001 Denis Chertykov <denisc@overta.ru>
> >
> > * ra.c (get_free_reg): Use preferred register order for selection.
> > (colorize_one_web): Use call_used_reg_set as preference.
> > (init_ra): arg,frame,stack pointers can use few hard regs.
>
> Thanks. Applied with the following small tweak and a comment in
> colorize_one_web:
>
> - return pref_reg > 0 ? pref_reg : last_resort_reg;
> + return pref_reg >= 0 ? pref_reg : last_resort_reg;
>
> Without that, on x86 e.g. it first selects 0 as pref_reg, but then returns
> -1, which results in spilling, next round it again tries 0, spills again,
> next round ... you can imagine ;)
With this patch in, I now get a lot farther on the way to bootstrapville
on alphaev6-unknown-linux-gnu. After the stage 2 compiler is completely
build, an attempt is made to compile libgcc with it. Alas:
./xgcc -B./ -B/usr/snp/alphaev6-unknown-linux-gnu/bin/ -isystem
/usr/snp/alphaev6-unknown-linux-gnu/include -O2 -DIN_GCC -W -Wall
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem
./include -fPIC -mieee -g1 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I.
-I. -I../../gcc/gcc -I../../gcc/gcc/. -I../../gcc/gcc/config
-I../../gcc/gcc/../include -DL_muldi3 -c ../../gcc/gcc/libgcc2.c -o
libgcc/./_muldi3.o
In file included from tm.h:7,
from ../../gcc/gcc/config/alpha/xm-alpha.h:39,
from tconfig.h:6,
from ../../gcc/gcc/libgcc2.c:36:
../../gcc/gcc/config/alpha/alpha.h:58: Tree check: expected integer_cst,
have error_mark
../../gcc/gcc/config/alpha/alpha.h:58: confused by earlier errors,
bailing out
However, this seems repairable ;-)
--
Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
Join GNU Fortran 95: http://g95.sourceforge.net/ (under construction)