On Tue, Jan 30, 2018 at 11:07:50AM +0100, Richard Biener wrote:
> 
> I have been asked to push this change, fixing (somewhat) the impreciseness
> of costing constant/invariant vector uses in SLP stmts.  The previous
> code always just considered a single constant to be generated in the
> prologue irrespective of how many we'd need.  With this patch we
> properly handle this count and optimize for the case when we can use
> a vector splat.  It doesn't yet handle CSE (or CSE among stmts) which
> means it could in theory regress cases it overall costed correctly
> before "optimistically" (aka by accident).  But at least the costing
> now matches code generation.
> 
> Bootstrapped and tested on x86_64-unknown-linux-gnu.  On x86_64
> Haswell with AVX2 SPEC 2k6 shows no off-noise changes.
> 
> The patch is said to help the case in the PR when additional backend
> costing changes are done (for AVX512).
> 
> Ok for trunk at this stage?

LGTM.

> 2018-01-30  Richard Biener  <rguent...@suse.de>
> 
>       PR tree-optimization/83008
>       * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost
>       invariant and constant vector uses in stmts when they need
>       more than one stmt.

        Jakub

Reply via email to