diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2018-05-23 10:32:16 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2018-05-23 10:32:16 +0000 |
commit | 159440699bf6f97dccc94377d9d69e540a1904dc (patch) | |
tree | e4ecc9d8f4c8a97c32fc8fc6eab46d0fcaac45f3 /libcpp | |
parent | 162ea0d3723af727f60438276be15ab8a47210cc (diff) | |
download | gcc-159440699bf6f97dccc94377d9d69e540a1904dc.zip gcc-159440699bf6f97dccc94377d9d69e540a1904dc.tar.gz gcc-159440699bf6f97dccc94377d9d69e540a1904dc.tar.bz2 |
Fix SLP def type when computing masks (PR85853)
In this PR, SLP failed to include a comparison node in the SLP
tree and so marked the node as external. It then went on to call
vect_is_simple_use on the comparison with its STMT_VINFO_DEF_TYPE
still claiming that it was an internal definition.
We already avoid that for vect_analyze_stmt by temporarily copying
the node's definition type to each STMT_VINFO_DEF_TYPE. This patch
extends that to the vector type calculation. The easiest thing
seemed to be to split the analysis of the root node out into
a subroutine, so that it's possible to return false early without
awkward control flow.
2018-05-23 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
PR tree-optimization/85853
* tree-vect-slp.c (vect_slp_analyze_node_operations): Split out
the handling of the root of the node to...
(vect_slp_analyze_node_operations_1): ...this new function,
and run the whole thing with the child nodes' def types
set according to their SLP node's def type.
gcc/testsuite/
PR tree-optimization/85853
* gfortran.dg/vect/pr85853.f90: New test.
From-SVN: r260601
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions