[PATCH] D57382: [LV] Add planForInterleaving helper, to create VPlan if they are missing.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 31 11:10:27 PST 2019


fhahn marked an inline comment as done.
fhahn added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:6158
   if (MaxVF == 1)
     return NoVectorization;
 
----------------
dcaballe wrote:
> I wondered if we could make `LoopVectorizationPlanner::plan` more interleave group aware, since the code above also builds a vplan for VF=1 and and returns NoVectorization. Maybe we don't have to modify `computeMaxVF` but just pass `InterleaveGroup` flag to `LoopVectorizationPlanner::plan` and make sure a vplan is built when the flag is true. We are already passing `UserVF` so it would be more of the same. In that way we wouldn't need a independent handling for interleaving cases. I wouldn't worried about compile time since the code executed for `InterleaveGroup` would be mostly the code that you have in the new `planForInterleaving`, right?. What do you think?
The interleave count is currently determined by `CM.selectInterleaveCount` (or the user provided one, as in the test case) and depends on the vectorization factor. It might make sense to determine the interleave count in `plan` as well, and return a pair of VF and interleave count. What do you think?

(Please note that the interleave count I am talking about is not related to (Memory) InterleaveGroups)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57382/new/

https://reviews.llvm.org/D57382





More information about the llvm-commits mailing list