* gimple-ssa-store-merging.c (struct store_immediate_info): Add
commit832a73b93a2884c7f59810144a5d971a32a85620
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Nov 2017 19:24:59 +0000 (9 19:24 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Nov 2017 19:24:59 +0000 (9 19:24 +0000)
treea0e9608305ae2e5b1bfa1a7d5369840a34993ed1
parent67c0e9f5bd66940bf0340b8f0bd0c0c81f11854d
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254606 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/gimple-ssa-store-merging.c