diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-11-05 11:28:19 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-11-05 11:28:19 +0100 |
commit | 18e0c3d1718157761e3f23ddc33ae22393bef15f (patch) | |
tree | d44029bd0f91d888f3a5188839bab890b970e2c4 /gcc/tree-ssa-loop.c | |
parent | cbd429001f3a6c2338c695cc71a28cd8320e3bd2 (diff) | |
download | gcc-18e0c3d1718157761e3f23ddc33ae22393bef15f.zip gcc-18e0c3d1718157761e3f23ddc33ae22393bef15f.tar.gz gcc-18e0c3d1718157761e3f23ddc33ae22393bef15f.tar.bz2 |
re PR tree-optimization/87859 (store-merging miscompilation of mesa)
PR tree-optimization/87859
* gimple-ssa-store-merging.c (struct merged_store_group): Add
only_constants and first_nonmergeable_order members.
(merged_store_group::merged_store_group): Initialize them.
(merged_store_group::do_merge): Clear only_constants member if
adding something other than INTEGER_CST store.
(imm_store_chain_info::coalesce_immediate_stores): Don't merge
stores with order >= first_nonmergeable_order. Use
merged_store->only_constants instead of always recomputing it.
Set merged_store->first_nonmergeable_order if we've skipped any
stores. Attempt to merge overlapping INTEGER_CST stores that
we would otherwise skip.
* gcc.dg/store_merging_24.c: New test.
* gcc.dg/store_merging_25.c: New test.
From-SVN: r265794
Diffstat (limited to 'gcc/tree-ssa-loop.c')
0 files changed, 0 insertions, 0 deletions