[PATCH] D12842: [LoopVectorization] Add an API to make the LoopVectorizer publically accessible

James Molloy via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 14 08:34:15 PDT 2015


jmolloy created this revision.
jmolloy added reviewers: mzolotukhin, anemet, hfinkel.
jmolloy added a subscriber: llvm-commits.
jmolloy set the repository for this revision to rL LLVM.
Herald added a subscriber: sanjoy.

There's currently only one way to vectorize a loop - by using the LoopVectorize driver pass. But there's no real reason to have this restriction.

Taking examples from elsewhere in the codebase, I've created an API that takes all its dependencies explicitly and can be called from anywhere in the codebase (subject to layering violations of course).

LoopVectorize turns into a shell wrapper pass, which takes its dependencies from the pass manager and dumbly passes them on to the new LoopVectorization class.

The API makes a distinction between loop vectorization and loop interleaving. Even though these are very conflated within the loop vectorizer, I felt it was important to keep them separate at the API level.

Repository:
  rL LLVM

http://reviews.llvm.org/D12842

Files:
  include/llvm/Transforms/Utils/LoopWidening.h
  lib/Transforms/Vectorize/LoopVectorize.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12842.34678.patch
Type: text/x-patch
Size: 29126 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150914/65636727/attachment.bin>


More information about the llvm-commits mailing list