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

Arnold Schwaighofer aschwaighofer at apple.com
Tue Aug 12 14:44:13 PDT 2014


> On Aug 12, 2014, at 10:24 AM, Robison, Arch <arch.robison at intel.com> wrote:
> 
> Julia and OpenMP 4.0 have features where the user can bless a loop as 
> having no memory dependences that prevent vectorization, thus enabling
> vectorization of loops not amenable to compile-time or run-time 
> dependence analysis.  LLVM currently has no metadata to express such,
> as explained further below.
> 
> I'd like to propose new metadata that enables front-ends to tell the 
> vectorizer that "memory dependences are not a problem for vectorization
> widths up to n".  I'd appreciate any comments before I spend time 
> prototyping it.
> 

In general, I think this is a useful addition. We just have to get the semantics nailed down.

Is this annotation - if present -  meant as a restriction to accesses marked with “llvm.mem.parallel_loop_access”?  - That there is no loop carried dependence at a |distance| < k but there might be one at >= k between marked accesses. 

Thanks,
Arnold





More information about the llvm-dev mailing list