aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.cc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-06-25 14:04:31 +0200
committerRichard Biener <rguenther@suse.de>2024-06-26 18:53:08 +0200
commit629257bcb81434117f1e9c68479032563176dc0c (patch)
treefd5ef42afc1c0dd042f3a0fdd583400711662de0 /gcc/tree-vect-loop.cc
parent86a3dbeb6c6a36f8cf97c66cef83c9bc3ad82027 (diff)
downloadgcc-629257bcb81434117f1e9c68479032563176dc0c.zip
gcc-629257bcb81434117f1e9c68479032563176dc0c.tar.gz
gcc-629257bcb81434117f1e9c68479032563176dc0c.tar.bz2
tree-optimization/115629 - missed tail merging
The following fixes a missed tail-merging observed for the testcase in PR115629. The issue is that when deps_ok_for_redirect doesn't compute both would be valid prevailing blocks it rejects the merge. The following instead makes sure to record the working block as prevailing. Also stmt comparison fails for indirect references and is not handling memory references thoroughly, failing to unify array indices and pointers indirected. The following attempts to fix this. PR tree-optimization/115629 * tree-ssa-tail-merge.cc (gimple_equal_p): Handle memory references better. (deps_ok_for_redirect): Handle the case not both blocks are considered a valid prevailing block. * gcc.dg/tree-ssa/tail-merge-1.c: New testcase.
Diffstat (limited to 'gcc/tree-vect-loop.cc')
0 files changed, 0 insertions, 0 deletions