]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gcc/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Sep 2007 23:41:36 +0000 (23:41 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Sep 2007 23:41:36 +0000 (23:41 +0000)
* df-scan.c (df_notes_rescan): Do nothing if the instruction does
not yet have a basic block.
* dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128563 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/df-scan.c
gcc/dse.c

index 6e8285f837fc7dfae4717b4a9ff0e13dc955ecc8..64bdbe7929b65bc3adee173cbf0a589df7f75f3f 100644 (file)
@@ -1,3 +1,9 @@
+2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * df-scan.c (df_notes_rescan): Do nothing if the instruction does
+       not yet have a basic block.
+       * dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN.
+
 2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
 
        * config/mips/mips.c (mips_file_start): Add ".previous" directives
index 6c2c6fad58a541ab56bd19691b0f4df8bb756c7e..a1f71b03b6dd87d56fa106407ca963947cf60b7c 100644 (file)
@@ -2004,6 +2004,10 @@ df_notes_rescan (rtx insn)
   if (df->changeable_flags & DF_NO_INSN_RESCAN)
     return;
 
+  /* Do nothing if the insn hasn't been emitted yet.  */
+  if (!BLOCK_FOR_INSN (insn))
+    return;
+
   df_grow_bb_info (df_scan);
   df_grow_reg_info ();
 
index 1aa1598e6b49b7cc524efcce80becfe9f96c7c6e..a9577830170ffe1550ce1aaebf33c875bac16a37 100644 (file)
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -1428,10 +1428,8 @@ find_shift_sequence (rtx read_reg,
       /* In theory we could also check for an ashr.  Ian Taylor knows
         of one dsp where the cost of these two was not the same.  But
         this really is a rare case anyway.  */
-      df_set_flags (DF_NO_INSN_RESCAN);
       target = expand_binop (new_mode, lshr_optab, new_reg,
                             GEN_INT (shift), new_reg, 1, OPTAB_DIRECT);
-      df_clear_flags (DF_NO_INSN_RESCAN);
 
       if (target == new_reg)
        {