summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2007-02-24 16:30:51 +0000
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2007-02-24 16:30:51 +0000
commit1887df24fa0c3bdccfbfda205ce690ca698f4881 (patch)
tree36940c182974581864c1793a3e83e3a5520eaab0
parent5804b39ebca0eb1585104b1616513a80afc3a85c (diff)
downloadppe42-gcc-1887df24fa0c3bdccfbfda205ce690ca698f4881.tar.gz
ppe42-gcc-1887df24fa0c3bdccfbfda205ce690ca698f4881.zip
* loop-iv.c (simplify_using_initial_values): Return if the
expression becomes invalid due to altered regs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122291 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/loop-iv.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 13aa77851de..d1ce533a02c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -4,6 +4,8 @@
(determine_max_iter): Take additional LOOP arg; all callers changed.
Lose broken logic dealing with PLUS. Try to limit the upper bound by
one using simplifications.
+ (simplify_using_initial_values): Return if the expression becomes
+ invalid due to altered regs.
2007-02-23 DJ Delorie <dj@redhat.com>
diff --git a/gcc/loop-iv.c b/gcc/loop-iv.c
index fb0ec4525cc..21005d3ff51 100644
--- a/gcc/loop-iv.c
+++ b/gcc/loop-iv.c
@@ -1811,6 +1811,8 @@ simplify_using_initial_values (struct loop *loop, enum rtx_code op, rtx *expr)
FREE_REG_SET (altered);
return;
}
+ if (for_each_rtx (expr, altered_reg_used, altered))
+ return;
}
if (!single_pred_p (e->src)
OpenPOWER on IntegriCloud