OSDN Git Service

* loop-iv.c (simplify_using_initial_values): Return if the
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 24 Feb 2007 16:30:51 +0000 (16:30 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 24 Feb 2007 16:30:51 +0000 (16:30 +0000)
expression becomes invalid due to altered regs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122291 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/loop-iv.c

index 13aa778..d1ce533 100644 (file)
@@ -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>
 
index fb0ec45..21005d3 100644 (file)
@@ -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)