RFC: Modeling horizontal vector reductions

Hal Finkel hfinkel at anl.gov
Wed Sep 11 15:56:10 PDT 2013


----- Original Message -----
> 
> On Sep 11, 2013, at 5:30 PM, Chandler Carruth <chandlerc at google.com>
> wrote:
> 
> > 
> > On Wed, Sep 11, 2013 at 3:17 PM, Arnold Schwaighofer
> > <aschwaighofer at apple.com> wrote:
> > Therefore, I would like to model horizontal reductions as either
> > versions depending on which is deemed cheaper by the cost model.
> > 
> > What would make the first pattern cheaper? I'd like to better
> > understand why we don't just all ways do the second form…
> 
> Less shuffles (because shuffle vec, <0,1, undef, undef> is free) so
> when you don’t have pairwise vector operations the first pattern is
> preferable.

+1

> 
> 
> > It is a bit unfortunate to not have one canonical form but I don’t
> > think this justifies adding fast-math flags to isel (which will
> > eventually go away).
> > 
> > I don't really understand this part.
> > 
> > We have some reason at the IR level to know that we can choose
> > either association and get equivalent results. Why isn't the
> > correct answer to pick a canonical form, but preserve that
> > information long enough to reassociate when it is needed?
> 
> We want to pick the right form at ISel time - which is too late to
> reassociate.

Why? We have TM.Options.UnsafeFPMath, is that what you mean?

 -Hal

> 
> At some point - before ISel - we have to reasscociate because at ISel
> time we don’t have the fast-math flags that would tell us that it is
> legal to reassociate.
> 
> So, we could for example reassociate in CodeGen prepare. We would
> still need an interface to tell us when to do so.

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory




More information about the llvm-commits mailing list