PR middle-end/50865
commit7dff04992f47eb133f873bf444335776d9ac77c3
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 9 Jan 2016 07:37:04 +0000 (9 07:37 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 9 Jan 2016 07:37:04 +0000 (9 07:37 +0000)
tree45e51c7b289d01fdbda2b9323067a5127cd78f76
parent18431e78af0d902853d437338084538f1f122472
PR middle-end/50865
PR tree-optimization/69097
* fold-const.h (expr_not_equal_to): New prototype.
* fold-const.c: Include stringpool.h and tree-ssanames.h.
(expr_not_equal_to): New function.
* match.pd (X % -Y is the same as X % Y): Don't optimize
unless X is known not to be equal to minimum or Y is known
not to be equal to -1.
* tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
fold TRUNC_MOD_EXPR if the second argument is not a power of two.
(simplify_stmt_using_ranges): Adjust caller.
(vrp_finalize): Call set_value_range on SSA_NAMEs before calling
substitute_and_fold.

* gcc.c-torture/execute/pr50865.c: New test.
* gcc.c-torture/execute/pr69097-1.c: New test.
* gcc.c-torture/execute/pr69097-2.c: New test.
* gcc.dg/pr69097-1.c: New test.
* gcc.dg/pr69097-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232188 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/fold-const.c
gcc/fold-const.h
gcc/match.pd
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr50865.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/pr69097-1.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/pr69097-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr69097-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr69097-2.c [new file with mode: 0644]
gcc/tree-vrp.c