gimple-ssa-store-merging.c (struct merged_store_group): Move up bit_insertion field...
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 4 Jun 2018 22:12:51 +0000 (22:12 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 4 Jun 2018 22:12:51 +0000 (22:12 +0000)
commit7f5a3982462c30aab676a3bf09ef4a62a30c7696
tree65cd8834a5ebf2e1e26081175b3fc1a4b46b0b3d
parentd552d8190dd2d9927fa55d09b73067eb6f40b7dd
gimple-ssa-store-merging.c (struct merged_store_group): Move up bit_insertion field and declare can_be_merged_into method.

* gimple-ssa-store-merging.c (struct merged_store_group): Move up
bit_insertion field and declare can_be_merged_into method.
(merged_store_group::can_be_merged_into): New method.
(imm_store_chain_info::coalesce_immediate): Call it to decide whether
consecutive non-overlapping stores can be merged.  Turn MEM_REF stores
into BIT_INSERT_EXPR stores if the group contains a non-MEM_REF store.

From-SVN: r261173
gcc/ChangeLog
gcc/gimple-ssa-store-merging.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/store_merging_21.c [new file with mode: 0644]
gcc/testsuite/gnat.dg/opt71a.adb [moved from gcc/testsuite/gnat.dg/opt71.adb with 81% similarity]
gcc/testsuite/gnat.dg/opt71b.adb [new file with mode: 0644]