This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: A few SPEC95 results for the new register allocator
Daniel Berlin wrote:
> Diego Novillo <dnovillo@redhat.com> writes:
> > Today, the new register allocator branch successfully passed a
> > few SPEC95 tests for the first time. The new allocator produces
> > slightly worse SPEC marks except for perl (+4% speedup).
>
> This is actually very good, considering we
[ ... SNIP ... ]
> I'd guess we'd be doing at least as well as the old allocator already on RISC
> processors, however.
Unfortunately, not on Alpha's.
This is basically because ra.c won't compile:
../../gcc/gcc/ra.c: In function `colorize_one_web':
../../gcc/gcc/ra.c:2342: subscripted value is neither array nor pointer
The reason seems to be that
HARD_REG_SET colors
doesn't imply that colors is an array, like it is assumed in line 2342:
"[free = %x, mode = %s]\n", web->id, colors[0],
because (see hard-reg-set.h):
<QUOTE>
typedef unsigned HOST_WIDE_INT HARD_REG_ELT_TYPE;
#if FIRST_PSEUDO_REGISTER <= HOST_BITS_PER_WIDE_INT
#define HARD_REG_SET HARD_REG_ELT_TYPE
#else
#define HARD_REG_SET_LONGS \
((FIRST_PSEUDO_REGISTER + HOST_BITS_PER_WIDE_INT - 1) \
/ HOST_BITS_PER_WIDE_INT)
typedef HARD_REG_ELT_TYPE HARD_REG_SET[HARD_REG_SET_LONGS];
#endif
</QUOTE>
i.e. if the number of hard registers is smaller than the number of
HOST_BITS_PER_WIDE_INT, colors is not an array.
Hope this clarifies,
--
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)