diff options
author | Bernd Schmidt <bernd.schmidt@analog.com> | 2007-02-24 16:30:51 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2007-02-24 16:30:51 +0000 |
commit | 00c73ae6373c0a4080b9a414b43cc6efebb0705c (patch) | |
tree | 36940c182974581864c1793a3e83e3a5520eaab0 | |
parent | f048ddccf080a436a5d0ebc04006db525cc115e7 (diff) | |
download | gcc-00c73ae6373c0a4080b9a414b43cc6efebb0705c.zip gcc-00c73ae6373c0a4080b9a414b43cc6efebb0705c.tar.gz gcc-00c73ae6373c0a4080b9a414b43cc6efebb0705c.tar.bz2 |
loop-iv.c (simplify_using_initial_values): Return if the expression becomes invalid due to altered regs.
* loop-iv.c (simplify_using_initial_values): Return if the
expression becomes invalid due to altered regs.
From-SVN: r122291
-rw-r--r-- | gcc/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/loop-iv.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 13aa778..d1ce533 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 fb0ec45..21005d3 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) |