aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/reload1.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c259bcd..09c6190 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 3b4bb2d..a3519ef 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -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. */