[LV][VPlan] Detect outer loops for explicit vectorization.
authorDiego Caballero <diego.caballero@intel.com>
Tue, 24 Apr 2018 17:04:17 +0000 (17:04 +0000)
committerDiego Caballero <diego.caballero@intel.com>
Tue, 24 Apr 2018 17:04:17 +0000 (17:04 +0000)
commit60f2776b2f68698ab342174c122c26bf3bf4f198
tree73fd8e165324ad2104b55213c463ad9f2844f8ee
parentceee7889472456e370f4e943ca587c03f2de16be
[LV][VPlan] Detect outer loops for explicit vectorization.

Patch #2 from VPlan Outer Loop Vectorization Patch Series #1
(RFC: http://lists.llvm.org/pipermail/llvm-dev/2017-December/119523.html).

This patch introduces the basic infrastructure to detect, legality check
and process outer loops annotated with hints for explicit vectorization.
All these changes are protected under the feature flag
-enable-vplan-native-path. This should make this patch NFC for the existing
inner loop vectorizer.

Reviewers: hfinkel, mkuper, rengolin, fhahn, aemerson, mssimpso.

Differential Revision: https://reviews.llvm.org/D42447

llvm-svn: 330739
llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/explicit_outer_detection.ll [new file with mode: 0644]
llvm/test/Transforms/LoopVectorize/explicit_outer_nonuniform_inner.ll [new file with mode: 0644]
llvm/test/Transforms/LoopVectorize/explicit_outer_uniform_diverg_branch.ll [new file with mode: 0644]