re PR middle-end/23410 (FAIL: gcc.c-torture/execute/950612-1.c execution, at -Os and -O3)
PR tree-optimization/23410 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the sequence is not wrapping during the first step. From-SVN: r103733
This commit is contained in:
parent
ac156e9176
commit
ab02cc4e2c
|
@ -1,3 +1,9 @@
|
|||
2005-09-01 Sebastian Pop <pop@cri.ensmp.fr>
|
||||
|
||||
PR tree-optimization/23410
|
||||
* tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
|
||||
sequence is not wrapping during the first step.
|
||||
|
||||
2005-09-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/7241
|
||||
|
|
|
@ -1823,7 +1823,8 @@ scev_probably_wraps_p (tree type, tree base, tree step,
|
|||
struct nb_iter_bound *bound;
|
||||
tree delta, step_abs;
|
||||
tree unsigned_type, valid_niter;
|
||||
tree base_plus_step;
|
||||
tree base_plus_step, bpsps;
|
||||
int cps, cpsps;
|
||||
|
||||
/* FIXME: The following code will not be used anymore once
|
||||
http://gcc.gnu.org/ml/gcc-patches/2005-06/msg02025.html is
|
||||
|
@ -1865,7 +1866,17 @@ scev_probably_wraps_p (tree type, tree base, tree step,
|
|||
|
||||
*unknown_max = false;
|
||||
base_plus_step = fold_build2 (PLUS_EXPR, type, base, step);
|
||||
switch (compare_trees (base_plus_step, base))
|
||||
bpsps = fold_build2 (PLUS_EXPR, type, base_plus_step, step);
|
||||
cps = compare_trees (base_plus_step, base);
|
||||
cpsps = compare_trees (bpsps, base_plus_step);
|
||||
|
||||
/* Check that the sequence is not wrapping in the first step: it
|
||||
should have the same monotonicity for the first two steps. See
|
||||
PR23410. */
|
||||
if (cps != cpsps)
|
||||
return true;
|
||||
|
||||
switch (cps)
|
||||
{
|
||||
case -1:
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue