This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Bootstrap with -O9 fails on alpha
- To: gcc-patches at gcc dot gnu dot org
- Subject: Bootstrap with -O9 fails on alpha
- From: Alexandre Oliva <aoliva at redhat dot com>
- Date: 22 Aug 2000 03:33:26 -0300
- Organization: GCC Team, Red Hat
The problem is that, while compiling toplev.c for stage2, we end up
calling simplify_rtx(x), where x is:
(ne:DI (const_int 0 [0x0])
(symbol_ref:DI ("print_rtl")))
simplify_rtx ends up calling:
case '<':
return simplify_relational_operation (code, GET_MODE (XEXP (x, 0)),
XEXP (x, 0), XEXP (x, 1));
but, since the mode of a const_int is VOIDmode,
simplify_relational_operation() abort()s:
if (mode == VOIDmode
&& (GET_MODE (op0) != VOIDmode
|| GET_MODE (op1) != VOIDmode))
abort();
Is the patch below the right way to fix the problem? I.e., ok to
install?
Index: gcc/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
simplify_relational_operation if either operand is non-VOIDmode.
Index: gcc/simplify-rtx.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/simplify-rtx.c,v
retrieving revision 1.24
diff -u -p -r1.24 simplify-rtx.c
--- gcc/simplify-rtx.c 2000/08/04 20:28:06 1.24
+++ gcc/simplify-rtx.c 2000/08/22 06:32:11
@@ -2091,7 +2091,10 @@ simplify_rtx (x)
XEXP (x, 0), XEXP (x, 1), XEXP (x, 2));
case '<':
- return simplify_relational_operation (code, GET_MODE (XEXP (x, 0)),
+ return simplify_relational_operation (code,
+ (GET_MODE (XEXP (x, 0)) != VOIDmode
+ ? GET_MODE (XEXP (x, 0))
+ : GET_MODE (XEXP (x, 1))),
XEXP (x, 0), XEXP (x, 1));
default:
return NULL;
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist *Please* write to mailing lists, not to me