gimple-ssa-store-merging.c: Include gimple-fold.h.
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 1 Jun 2018 21:56:17 +0000 (21:56 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 1 Jun 2018 21:56:17 +0000 (21:56 +0000)
commitc94c353225cfa30a351399064ea3f3dc9326e472
tree74f52c0467c0cc3dc782bd91574a854e7c6fec82
parent3827838d31a149f18fabf8bc5225239a2668b23d
gimple-ssa-store-merging.c: Include gimple-fold.h.

* gimple-ssa-store-merging.c: Include gimple-fold.h.
(struct store_immediate_info): Document BIT_INSERT_EXPR stores.
(struct merged_store_group): Add bit_insertion field.
(dump_char_array): Use standard hexadecimal format.
(merged_store_group::merged_store_group): Set bit_insertion to false.
(merged_store_group::apply_stores): Use optimal buffer size.  Deal
with BIT_INSERT_EXPR stores.  Move up code updating the mask and
also print the mask in the dump file.
(pass_store_merging::gate): Minor tweak.
(imm_store_chain_info::coalesce_immediate): Fix wrong association
of stores with groups in dump.  Allow coalescing of BIT_INSERT_EXPR
stores with INTEGER_CST stores.
(count_multiple_uses) <BIT_INSERT_EXPR>: New case.
(imm_store_chain_info::output_merged_store): Add try_bitpos variable
and use it throughout.  Generate bit insertion sequences if need be.
(pass_store_merging::process_store): Remove redundant condition.
Record stores from a SSA name to a bit-field with BIT_INSERT_EXPR.

From-SVN: r261089
gcc/ChangeLog
gcc/gimple-ssa-store-merging.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/store_merging_20.c [new file with mode: 0644]
gcc/testsuite/gnat.dg/opt71.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/opt71_pkg.ads [new file with mode: 0644]