diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-01-09 08:37:04 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-01-09 08:37:04 +0100 |
commit | 20b8d7342cc4920c79aebc0317150abe66068957 (patch) | |
tree | 45e51c7b289d01fdbda2b9323067a5127cd78f76 /gcc/fold-const.h | |
parent | c50e614be6bb98f8a67f6fda4f73b412b035329d (diff) | |
download | gcc-20b8d7342cc4920c79aebc0317150abe66068957.zip gcc-20b8d7342cc4920c79aebc0317150abe66068957.tar.gz gcc-20b8d7342cc4920c79aebc0317150abe66068957.tar.bz2 |
re PR middle-end/50865 (Invalid code generation for INT64_MIN % 1 on x86_64)
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.
From-SVN: r232188
Diffstat (limited to 'gcc/fold-const.h')
-rw-r--r-- | gcc/fold-const.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/fold-const.h b/gcc/fold-const.h index 885320c..02f4270 100644 --- a/gcc/fold-const.h +++ b/gcc/fold-const.h @@ -177,6 +177,7 @@ extern bool merge_ranges (int *, tree *, tree *, int, tree, tree, int, tree, tree); extern tree sign_bit_p (tree, const_tree); extern tree exact_inverse (tree, tree); +extern bool expr_not_equal_to (tree t, const wide_int &); extern tree const_unop (enum tree_code, tree, tree); extern tree const_binop (enum tree_code, tree, tree, tree); extern bool negate_mathfn_p (combined_fn); |