gimple-ssa-store-merging.c (struct store_immediate_info): Add bit_not_p field.
authorJakub Jelinek <jakub@redhat.com>
Thu, 9 Nov 2017 19:24:59 +0000 (20:24 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 9 Nov 2017 19:24:59 +0000 (20:24 +0100)
commitd60edaba4fc4e75824f27291ff448bf48118b3f4
treea0e9608305ae2e5b1bfa1a7d5369840a34993ed1
parent6e307219b955b80e6669acadae72c183f0eda248
gimple-ssa-store-merging.c (struct store_immediate_info): Add bit_not_p field.

* gimple-ssa-store-merging.c (struct store_immediate_info): Add
bit_not_p field.
(store_immediate_info::store_immediate_info): Add bitnotp argument,
set bit_not_p to it.
(imm_store_chain_info::coalesce_immediate_stores): Break group
if bit_not_p is different.
(count_multiple_uses, split_group,
imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
(handled_load): Avoid multiple chained BIT_NOT_EXPRs.
(pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
to store_immediate_info ctor.

From-SVN: r254606
gcc/ChangeLog
gcc/gimple-ssa-store-merging.c