This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ia64 performance regression
On Sat, Nov 10, 2001 at 01:26:12PM +0100, Krister Walfridsson wrote:
> This change breaks bootstrap for i386-unknown-netbsdelf1.5Y. (it gives
> ICE for some files, for example f/implicit.c)
Bother. The same problem I saw on Alpha before I tweeked the
machine description. The problem being that loop blindly
replaces one register with another without verifying that the
replacement is valid.
The quick hack back to bootstrapville is
Index: loop.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/loop.c,v
retrieving revision 1.366
diff -u -p -r1.366 loop.c
--- loop.c 2001/11/07 06:24:46 1.366
+++ loop.c 2001/11/10 18:54:50
@@ -1346,7 +1346,7 @@ combine_movables (movables, regs)
/* We want later insns to match the first one. Don't make the first
one match any later ones. So start this loop at m->next. */
for (m1 = m->next; m1; m1 = m1->next)
- if (m != m1 && m1->match == 0
+ if (0 && m != m1 && m1->match == 0
&& regs->array[m1->regno].n_times_set == 1
/* A reg used outside the loop mustn't be eliminated. */
&& !m1->global
I'll work on a proper solution.
r~