Move code out of vect_slp_analyze_bb_1
authorRichard Sandiford <richard.sandiford@arm.com>
Sun, 20 Oct 2019 12:59:45 +0000 (12:59 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sun, 20 Oct 2019 12:59:45 +0000 (12:59 +0000)
commit1d778697b37aec23db5b6003dfe08d2d78bd9424
tree2b0566046eeeaadf0ee073ece8d50e0dbe07d7ba
parentfa0c8df71d4f0476834db0b7cd88524878b46cf7
Move code out of vect_slp_analyze_bb_1

After the previous patch, it seems more natural to apply the
PARAM_SLP_MAX_INSNS_IN_BB threshold as soon as we know what
the region is, rather than delaying it to vect_slp_analyze_bb_1.
(But rather than carve out the biggest region possible and then
reject it, wouldn't it be better to stop when the region gets
too big, to at least give us a chance of vectorising something?)

It also seems more natural for vect_slp_bb_region to create the
bb_vec_info itself rather than (a) having to pass bits of data down
for the initialisation and (b) forcing vect_slp_analyze_bb_1 to free
on every failure return.

2019-10-20  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-slp.c (vect_slp_analyze_bb_1): Take a bb_vec_info
and return a boolean success value.  Move the allocation and
initialization of the bb_vec_info to...
(vect_slp_bb_region): ...here.  Update call accordingly.
(vect_slp_bb): Apply PARAM_SLP_MAX_INSNS_IN_BB here rather
than in vect_slp_analyze_bb_1.

From-SVN: r277211
gcc/ChangeLog
gcc/tree-vect-slp.c