------- Comment #5 from changpeng dot fang at amd dot com 2010-03-01 18:02
-------
I have a fix for this problem. We should not decrease the cost if the cost is
infinite.
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 74dadf7..9accda9 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -4124,7 +4124,11 @@ determine_use_iv_cost_condition (struct ivopts_data
*data,
if (integer_zerop (*bound_cst)
&& (operand_equal_p (*control_var, cand->var_after, 0)
|| operand_equal_p (*control_var, cand->var_before, 0)))
- elim_cost.cost -= 1;
+ {
+ /* Should not decrease the cost if it is infinite */
+ if (!infinite_cost_p (elim_cost))
+ elim_cost.cost -= 1;
+ }
--
changpeng dot fang at amd dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |changpeng dot fang at amd
| |dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43209