]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* 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 13aa77851dea984f0ad3e11b710aadd7925da6c2..d1ce533a02ccdd4a7941a75025fe324b8dc2c29a 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 fb0ec4525ccb28602e11b7a4de6f8026eaac4dfa..21005d3ff51f3644ad004f0149b5683d72a3fd33 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)