Patch for jump optimization

Weiwen Liu weiwen.liu@yale.edu
Mon Feb 2 21:49:00 GMT 1998


On alpha-dec-osf4.0, the current egcs in the cvs tree fails to build
libgcc2.a, because the jump optimization (modified_in_p) fails to
process the following insn.

(jump_insn 52 51 54 (set (pc)
        (if_then_else (eq (reg:DI 102)
                (const_int 0))
            (label_ref 56)
            (pc))) 178 {umindi3+2} (nil)
    (nil))

I use the following patch to get the bootstrap going.

Mon Feb  2 1998 11:00:20  Weiwen Liu <weiwen.liu@yale.edu>
	* rtlanal.c (modified_in_p): Do not check modified_in_p if
	XEXP (x, i) is NULL.

Index: rtlanal.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/rtlanal.c,v
retrieving revision 1.6
diff -u -p -r1.6 rtlanal.c
--- rtlanal.c	1998/01/28 19:21:48	1.6
+++ rtlanal.c	1998/02/03 03:46:30
@@ -594,7 +594,7 @@ modified_in_p (x, insn)
   fmt = GET_RTX_FORMAT (code);
   for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
     {
-      if (fmt[i] == 'e' && modified_in_p (XEXP (x, i), insn))
+      if (fmt[i] == 'e' && XEXP (x, i) && modified_in_p (XEXP (x, i), insn))
 	return 1;
 
       if (fmt[i] == 'E')






More information about the Gcc mailing list