[PATCH] D19512: [LoopVectorize] Don't consider conditional-load dereferenceability when vectorization is forced

Hal Finkel via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 25 17:43:51 PDT 2016


hfinkel added a comment.

In http://reviews.llvm.org/D19512#411557, @anemet wrote:

> In http://reviews.llvm.org/D19512#411520, @hfinkel wrote:
>
> > Actually, checking:
> >
> >   Hints->getForce() == LoopVectorizeHints::FK_Enabled
> >   
> >
> > will catch both vectorize(assume_safety) and vectorize(enable). I'd need to also check:
>
>
> I was about point this out and then ask you this :-) :
>
> > 
>
> > 
>
> >   TheLoop->isAnnotatedParallel()
>
> >    
>
> > 
>
> > to only get assume_safety. It occurs to me that I don't entirely like this setup: The parallel loop annotation is documented to refer to loop dependencies, not if-conversion safety. While I don't think users will be bothered by this (or see it), do you think that taking llvm.mem.parallel_loop_access to imply if-conversion safety is okay, or do we need to enhance it to differentiate between these concepts (loop-carried dependencies vs. if-conversion safety)? I don't have a use case for differentiating them. Opinions?
>
>
> Looks like we only use llvm.mem.parallel_loop_access to convey assume_safety so I guess we can just extend it to imply if-convertable loads as well, no?


I'm happy to do this (we can always differentiate late if there's a use case for that). I'll update the patch.


http://reviews.llvm.org/D19512





More information about the llvm-commits mailing list