Add support for llvm.vectorizer metadata
authorPaul Redmond <paul.redmond@intel.com>
Tue, 28 May 2013 20:00:34 +0000 (20:00 +0000)
committerPaul Redmond <paul.redmond@intel.com>
Tue, 28 May 2013 20:00:34 +0000 (20:00 +0000)
commitee21b6f7b41e3fc19031f6d410b2ebe6a1a2f361
tree2aa58825f8b66f5b1aae72312b9cdaf5f9da8a69
parenta32edcfbc5b99b808b67360311d513af650eab44
Add support for llvm.vectorizer metadata

- llvm.loop.parallel metadata has been renamed to llvm.loop to be more generic
  by making the root of additional loop metadata.
  - Loop::isAnnotatedParallel now looks for llvm.loop and associated
    llvm.mem.parallel_loop_access
  - document llvm.loop and update llvm.mem.parallel_loop_access
- add support for llvm.vectorizer.width and llvm.vectorizer.unroll
  - document llvm.vectorizer.* metadata
  - add utility class LoopVectorizerHints for getting/setting loop metadata
  - use llvm.vectorizer.width=1 to indicate already vectorized instead of
    already_vectorized
- update existing tests that used llvm.loop.parallel and
  llvm.vectorizer.already_vectorized

Reviewed by: Nadav Rotem

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182802 91177308-0d34-0410-b5e6-96231b3b80d8
docs/LangRef.rst
include/llvm/Analysis/LoopInfo.h
lib/Analysis/LoopInfo.cpp
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
test/Transforms/LoopVectorize/X86/parallel-loops-after-reg2mem.ll
test/Transforms/LoopVectorize/X86/parallel-loops.ll
test/Transforms/LoopVectorize/metadata-unroll.ll [new file with mode: 0644]
test/Transforms/LoopVectorize/metadata-width.ll [new file with mode: 0644]
test/Transforms/LoopVectorize/vectorize-once.ll