aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/regrename.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 114d604..56fd127 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-12-15 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * regrename.c (copyprop_hardreg_forward): Do not keep register
+ value data live across abnormal call or eh egdes.
+
Sat Dec 15 08:29:45 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* expr.c (highest_pow2_factor, case INTEGER_CST): Return
diff --git a/gcc/regrename.c b/gcc/regrename.c
index 6014274..3236a43 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -1626,6 +1626,7 @@ copyprop_hardreg_forward ()
/* ??? Ought to use more intelligent queueing of blocks. */
if (bb->pred
&& ! bb->pred->pred_next
+ && ! (bb->pred->flags & (EDGE_ABNORMAL_CALL | EDGE_EH))
&& bb->pred->src->index != ENTRY_BLOCK
&& bb->pred->src->index < b)
all_vd[b] = all_vd[bb->pred->src->index];