[PATCH] support llvm.vectorization.vector_width metadata

Tobias Grosser tobias at grosser.es
Tue May 28 21:18:10 PDT 2013


On 05/28/2013 10:58 AM, Redmond, Paul wrote:
> Hi,
>
> Attached is a new patch.
>
> - use width=1 instead of already_vectorized/disabled
> - removed disabled
> - attempted to make documentation for llvm.vectorizer.width more clear

Thanks! This is already a lot better.

"This metadata forces the loop vectorizer to widen scalar values to a 
vector width of ``N`` rather than computing the width using a cost model."

Could you add the following senctence.

"The ``llvm.vectorizer.width'' metadata overwrites only the cost 
heuristics of the vectorizer. To actually vectorize a loop the 
vectorizer either needs to be able to prove that a loop is parallel or
the loop has to be marked with additional 
``llvm.mem.parallel_loop_access'' as parallel"

> - check unroll and width are powers of two and unroll <= 16 and width <= 64
> - addressed style issues

Otherwise, my comments have been addressed.

Thanks for working on this!

Tobias




More information about the llvm-commits mailing list