aboutsummaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-09-11 14:50:02 +0200
committerRichard Biener <rguenth@gcc.gnu.org>2024-09-12 09:20:48 +0200
commitf9e9ba9563c81ca2db99bf3daa6511c1471f1b78 (patch)
tree453e4e2913b1c2a09881cb18498be5f913d65a5c /libiberty
parent89d50c45048e5d7230ddde9afc8fbc83143e34cb (diff)
downloadgcc-f9e9ba9563c81ca2db99bf3daa6511c1471f1b78.zip
gcc-f9e9ba9563c81ca2db99bf3daa6511c1471f1b78.tar.gz
gcc-f9e9ba9563c81ca2db99bf3daa6511c1471f1b78.tar.bz2
Better recover from SLP reassociation fails during discovery
When we decide to not process a association chain of size two and that would also mismatch with a different chain size on another lane we shouldn't fail discovery hard at this point. Instead let the regular discovery figure out matching lanes so the parent can decide to perform operand swapping or we can split groups at better points rather than forcefully splitting away the first single lane. For example on gcc.dg/vect/vect-strided-u8-i8.c we now see two groups of size 4 feeding the store instead of groups of size 1, three, two, one and one. * tree-vect-slp.cc (vect_build_slp_tree_2): On reassociation chain length mismatch do not fail discovery of the node but try without re-associating to compute a better matches[]. Provide a reassociation failure hint in the dump. (vect_slp_analyze_node_operations): Avoid stray failure dumping. (vectorizable_slp_permutation_1): Dump the address of the SLP node representing the permutation.
Diffstat (limited to 'libiberty')
0 files changed, 0 insertions, 0 deletions