re PR tree-optimization/82434 (-fstore-merging does not work reliably.)
authorJakub Jelinek <jakub@redhat.com>
Fri, 6 Oct 2017 09:39:07 +0000 (11:39 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 6 Oct 2017 09:39:07 +0000 (11:39 +0200)
commit2f3914287d4c1c75394d4f101ad5bd4d9d4b66e8
tree305f8eac06e4d9b00a2a7347b8b47303405eb9b2
parentd20eac1b41b9a86128a80f374e029d9638d14cba
re PR tree-optimization/82434 (-fstore-merging does not work reliably.)

PR tree-optimization/82434
* fold-const.h (can_native_encode_type_p,
can_native_encode_string_p): Remove.
* fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
don't encode anything, just return what would be otherwise returned.
(native_encode_fixed, native_encode_complex, native_encode_vector):
Likewise.
(native_encode_string): Likewise.  Inline by hand
can_native_encode_string_p.
(can_native_encode_type_p): Remove.
(can_native_encode_string_p): Remove.
* tree-vect-stmts.c (vectorizable_store): Instead of testing just
STRING_CSTs using can_native_encode_string_p, test all
CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
* gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
argument from native_encode_expr.
(rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
(pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
but just 2.

* gcc.dg/store_merging_9.c: New test.

From-SVN: r253483
gcc/ChangeLog
gcc/fold-const.c
gcc/fold-const.h
gcc/gimple-ssa-store-merging.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/store_merging_9.c [new file with mode: 0644]
gcc/tree-vect-stmts.c