re PR tree-optimization/19105 (fold does not spot anti-range test)
authorJakub Jelinek <jakub@redhat.com>
Wed, 31 Oct 2012 08:45:27 +0000 (09:45 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 31 Oct 2012 08:45:27 +0000 (09:45 +0100)
commitd578e863b08e64789f767c95f85acd10dc477bdf
tree260b507c59290539996f49c796ce84539ec8f3cc
parentc727fb67fb48a1f45675a2584b7fe41c4745a929
re PR tree-optimization/19105 (fold does not spot anti-range test)

PR tree-optimization/19105
PR tree-optimization/21643
PR tree-optimization/46309
* tree-ssa-reassoc.c (init_range_entry): Add STMT argument
and use it if EXP is NULL.
(update_range_test): Handle OPCODE equal to ERROR_MARK
and oe->op NULL.
(optimize_range_tests): Likewise.
(final_range_test_p, suitable_cond_bb, no_side_effect_bb, get_ops,
maybe_optimize_range_tests): New functions.
(reassociate_bb): Call maybe_optimize_range_tests if last
stmt of bb is GIMPLE_COND that hasn't been visited yet.

* gcc.dg/pr19105.c: New test.
* gcc.dg/pr21643.c: New test.
* gcc.dg/pr46309-2.c: New test.
* gcc.c-torture/execute/pr46309.c: New test.

From-SVN: r193028
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr46309.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr19105.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr21643.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr46309-2.c [new file with mode: 0644]
gcc/tree-ssa-reassoc.c