[LLVMdev] Proposal for ""llvm.mem.vectorize.safelen"

Hal Finkel hfinkel at anl.gov
Tue Aug 19 15:57:54 PDT 2014


----- Original Message -----
> From: "Roel Jordans" <r.jordans at tue.nl>
> To: llvmdev at cs.uiuc.edu
> Sent: Wednesday, August 13, 2014 5:57:15 AM
> Subject: Re: [LLVMdev] Proposal for ""llvm.mem.vectorize.safelen"
> 
> >
> > WHY CURRENT METADATA DOES NOT SUFFICE
> > -------------------------------------
> >
> > There are currently two pieces of metadata that come close, but
> > miss the
> > desired semantics.
> >
> > * llvm.loop.vectorize.width - hints at what vectorization width to
> > use
> >    *if* the loop is safe to vectorize.  It does not specify that
> >    the
> >    loop is safe to vectorize.
> >
> > * llvm.mem.parallel_loop_access - indicates that accesses do not
> >    have a loop-carried dependence between them.  That's too broad a
> >    brush, as it precludes loops that do have dependences (e.g.
> >    "forward
> >    lexical dependences") that are nonetheless vectorizable.
> >
> 
> How does this relate to the recent additions by Hal on invariants
> using
> llvm.assume? [0]

I don't think this related because the assumptions don't provide any direct way of asserting things about memory aliasing. That might be an interesting thing to do, but we've not really thought about it yet.

Regarding the proposal, I'm in favor. I don't like using the name 'savelen' however. I can forgive OpenMP for choosing such a short name because people need to type it, but I'd prefer that the metadata have a more-descriptive name. minimum_dependency_distance is perhaps better.

 -Hal

> 
> Can we translate llvm.mem.vectorize.safelen into an invariant on k
> similarly as to what you're proposing that the programmer should
> ensure?
> 
> Cheers,
>   Roel
> 
> [0] http://comments.gmane.org/gmane.comp.compilers.llvm.devel/74941
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 

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



More information about the llvm-dev mailing list