summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2004-09-24 14:36:28 +0000
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2004-09-24 14:36:28 +0000
commitc30738d003135da1d840a019006667f7fa4bbc5c (patch)
tree9abc153149c4054c3b0b6bc39509ca8dcdc00afc
parentde772ad8ddef3e7f5d0eeb7199d88b4d2f1706ca (diff)
downloadppe42-gcc-c30738d003135da1d840a019006667f7fa4bbc5c.tar.gz
ppe42-gcc-c30738d003135da1d840a019006667f7fa4bbc5c.zip
PR rtl-optimization/17625
* loop-doloop.c (doloop_modify): Unshare rtl before emitting it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88038 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/loop-doloop.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index aac77b4166f..c01942dbb70 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-09-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR rtl-optimization/17625
+ * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
+
2004-09-24 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/17624
diff --git a/gcc/loop-doloop.c b/gcc/loop-doloop.c
index e463eeab899..7b4f4d42b5f 100644
--- a/gcc/loop-doloop.c
+++ b/gcc/loop-doloop.c
@@ -292,7 +292,7 @@ doloop_modify (struct loop *loop, struct niter_desc *desc,
if (GET_CODE (counter_reg) == PLUS)
counter_reg = XEXP (counter_reg, 0);
- count = desc->niter_expr;
+ count = copy_rtx (desc->niter_expr);
increment_count = false;
switch (GET_CODE (condition))
{
@@ -345,7 +345,7 @@ doloop_modify (struct loop *loop, struct niter_desc *desc,
if (desc->noloop_assumptions)
{
- rtx ass = desc->noloop_assumptions;
+ rtx ass = copy_rtx (desc->noloop_assumptions);
basic_block preheader = loop_preheader_edge (loop)->src;
basic_block set_zero
= loop_split_edge_with (loop_preheader_edge (loop), NULL_RTX);
OpenPOWER on IntegriCloud