[PATCH] D45072: [NFC][LV] Move InterleaveInfo from Legal to CostModel

Hideki Saito via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 29 17:25:26 PDT 2018


hsaito created this revision.
hsaito added reviewers: rengolin, hfinkel, mkuper, dcaballe, sguggill, fhahn, aemerson.
Herald added a subscriber: llvm-commits.

Another clean up, following https://reviews.llvm.org/D43208.

Interleaved memory access analysis/optimization has nothing to do with vectorization legality. It doesn't really belong there. On the other hand, cost model certainly has to know about it.

In principle, vectorization should proceed like Legality ==> Optimization ==> CostModel ==> CodeGen, and this change just does that,
by moving the interleaved access analysis/decision out of Legal, and run it just before CostModel object is created.

After this, I can move LoopVectorizationLegality and Hints/Requirements classes into it's own header file, making it shareable within Transform tree. I have the patch already but I don't want to mix with this change. Eventual goal is to move to Analysis tree, but I first need to move RecurrenceDescriptor/InductionDescriptor from Transform/Util/LoopUtil.* to Analysis.


Repository:
  rL LLVM

https://reviews.llvm.org/D45072

Files:
  lib/Transforms/Vectorize/LoopVectorize.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45072.140370.patch
Type: text/x-patch
Size: 12375 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180330/aed841c7/attachment.bin>


More information about the llvm-commits mailing list