From 1887df24fa0c3bdccfbfda205ce690ca698f4881 Mon Sep 17 00:00:00 2001 From: bernds Date: Sat, 24 Feb 2007 16:30:51 +0000 Subject: [PATCH] * 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 --- gcc/ChangeLog | 2 ++ gcc/loop-iv.c | 2 ++ 2 files changed, 4 insertions(+) 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 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) -- 2.11.4.GIT