[PATCH] Implement pragma llvm.vectorizer.enable in LoopVectorizer
renato.golin at linaro.org
Fri Nov 29 12:43:48 PST 2013
On 29 November 2013 20:26, Arnold <aschwaighofer at apple.com> wrote:
> But at which width/factor? If the cost model "fails" how should the vectorizer select "the right" one? (This case is covered by pragma width/unroll)
As you said below, whatever the vectorizer thinks it's best. But
that's arguable, and I agree it's not a good alternative.
> I think #pragma vectorizer enable should just turn on vectorization with automatic selection of the VF/UF.
> You also would not need new meta data for this llvm.vectorizer.unroll (0) and llvm.vectorizer.width(0) already have this semantics.
Ok, I didn't know that.
> To implement Oz and O1 vectorization we would pass a flag to the loop vectorizer to only vectorize loops marked with the right metadata.
Yes, and then we'd enable the Loop/SLP vectorizers by default, but at
lower levels, only run with metadata.
> At Os we take these flags to mean vectorize with O3 heuristics.
I see. We'll need to document all of that, because it's getting
complicated for the user. But I agree with this change, too.
I'll discard this code review and start the global one.
More information about the llvm-commits