aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2001-12-15 15:36:14 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2001-12-15 15:36:14 +0000
commit22c56562fe32a9ca5648f1cbf2106824c1a70be5 (patch)
tree7670c8f7bf0879e43d4f1df6768fbf299eee65e3
parent3a531a8b4e988c611b5412ff30bbb7ab26c4b02c (diff)
downloadgcc-22c56562fe32a9ca5648f1cbf2106824c1a70be5.zip
gcc-22c56562fe32a9ca5648f1cbf2106824c1a70be5.tar.gz
gcc-22c56562fe32a9ca5648f1cbf2106824c1a70be5.tar.bz2
regrename.c (copyprop_hardreg_forward): Do not keep register value data live across abnormal call or eh egdes.
* regrename.c (copyprop_hardreg_forward): Do not keep register value data live across abnormal call or eh egdes. From-SVN: r48043
-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];