Commit bcd8d322 by Jan Hubicka Committed by Jan Hubicka

loop-iv.c (iv_number_of_iterations): Record the upper bound only if there are no…

loop-iv.c (iv_number_of_iterations): Record the upper bound only if there are no further conditions on it.


	* loop-iv.c (iv_number_of_iterations): Record the upper bound
	only if there are no further conditions on it.

From-SVN: r192636
parent 4a0ae68e
2012-10-20 Jan Hubicka <jh@suse.cz>
* loop-iv.c (iv_number_of_iterations): Record the upper bound
only if there are no further conditions on it.
2012-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org> 2012-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c/53063 PR c/53063
...@@ -2593,8 +2593,10 @@ iv_number_of_iterations (struct loop *loop, rtx insn, rtx condition, ...@@ -2593,8 +2593,10 @@ iv_number_of_iterations (struct loop *loop, rtx insn, rtx condition,
? iv0.base ? iv0.base
: mode_mmin); : mode_mmin);
max = (up - down) / inc + 1; max = (up - down) / inc + 1;
record_niter_bound (loop, double_int::from_uhwi (max), if (!desc->infinite
false, true); && !desc->assumptions)
record_niter_bound (loop, double_int::from_uhwi (max),
false, true);
if (iv0.step == const0_rtx) if (iv0.step == const0_rtx)
{ {
...@@ -2806,15 +2808,19 @@ iv_number_of_iterations (struct loop *loop, rtx insn, rtx condition, ...@@ -2806,15 +2808,19 @@ iv_number_of_iterations (struct loop *loop, rtx insn, rtx condition,
desc->const_iter = true; desc->const_iter = true;
desc->niter = val & GET_MODE_MASK (desc->mode); desc->niter = val & GET_MODE_MASK (desc->mode);
record_niter_bound (loop, double_int::from_uhwi (desc->niter), if (!desc->infinite
false, true); && !desc->assumptions)
record_niter_bound (loop, double_int::from_uhwi (desc->niter),
false, true);
} }
else else
{ {
max = determine_max_iter (loop, desc, old_niter); max = determine_max_iter (loop, desc, old_niter);
gcc_assert (max); gcc_assert (max);
record_niter_bound (loop, double_int::from_uhwi (max), if (!desc->infinite
false, true); && !desc->assumptions)
record_niter_bound (loop, double_int::from_uhwi (max),
false, true);
/* simplify_using_initial_values does a copy propagation on the registers /* simplify_using_initial_values does a copy propagation on the registers
in the expression for the number of iterations. This prolongs life in the expression for the number of iterations. This prolongs life
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment