[PATCH/dataflow] missing df_insn_rescan()

Roman Zippel zippel@linux-m68k.org
Sun Mar 4 00:43:00 GMT 2007


Hi,

I'm currently trying out the dataflow branch on m68k and I need the
patch below to get it at least to cross compile.

The dataflow information is incomplete after separating the constant
operand from the instruction in scan_one_insn:

(insn 86 58 59 13 ../../../gcc-dataflow/libgcc/../gcc/libgcc2.c:1734 (set (reg/v:SF 31 [ y ])
        (const_double:SF -2147483648 [0x80000000] 1.0e+0 [0x0.8p+1])) 42 {*m68k.md:802} (nil))

(insn 59 86 60 13 ../../../gcc-dataflow/libgcc/../gcc/libgcc2.c:1734 (set (reg/v:SF 31 [ y ])
        (div:SF (reg/v:SF 31 [ y ])
            (reg/v:SF 30 [ y.27 ]))) 211 {divsf3_68881} (expr_list:REG_DEAD (reg/v:SF 30 [ y.27 ])
        (nil)))

Booted and tested on i686-linux.

bye, Roman

200x-xx-xx  Roman Zippel <zippel@linux-m68k.org>

	* regclass.c (scan_one_insn): Call df_insn_rescan after breaking
	out constant parameter.


---
 gcc/regclass.c |    2 ++
 1 file changed, 2 insertions(+)

Index: gcc-dataflow/gcc/regclass.c
===================================================================
--- gcc-dataflow.orig/gcc/regclass.c
+++ gcc-dataflow/gcc/regclass.c
@@ -1176,6 +1176,8 @@ scan_one_insn (rtx insn, int pass)
 	    REG_FREQ (REGNO (recog_data.operand[0])) += frequency;
 	  }
 
+      df_insn_rescan (insn);
+
       return PREV_INSN (newinsn);
     }
 



More information about the Gcc-patches mailing list