* reload1.c (reload_cse_delete_noop_set): Purge dead edges.
authorJan Hubicka <jh@suse.cz>
Thu, 7 Mar 2002 15:55:03 +0000 (16:55 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 7 Mar 2002 15:55:03 +0000 (15:55 +0000)
From-SVN: r50406

gcc/ChangeLog
gcc/reload1.c

index c259bcd1cd9aeafa57288928f3d5908ae2cd464f..09c61902f1fc3e0780092f9a7b23dfb76b00c7ac 100644 (file)
@@ -1,3 +1,7 @@
+Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
+
+       * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
+
 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
 
        * basic-block.h (fixup_abnormal_edges): Declare.
index 3b4bb2d0cbdecb72d11b20af1e153968ab5b02f8..a3519efe3c40b18ea1867d892d10f0b1dfa6d88f 100644 (file)
@@ -8019,6 +8019,7 @@ static void
 reload_cse_delete_noop_set (insn, value)
      rtx insn, value;
 {
+  bool purge = BLOCK_FOR_INSN (insn)->end == insn;
   if (value)
     {
       PATTERN (insn) = gen_rtx_USE (VOIDmode, value);
@@ -8027,6 +8028,8 @@ reload_cse_delete_noop_set (insn, value)
     }
   else
     delete_insn (insn);
+  if (purge)
+    purge_dead_edges (BLOCK_FOR_INSN (insn));
 }
 
 /* See whether a single set SET is a noop.  */