[PATCH] D81416: [LV][SLP] Interleave to expose ILP for small loops with scalar reductions.

Aaron H Liu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 8 12:08:17 PDT 2020


AaronLiu created this revision.
AaronLiu added reviewers: hsaito, Ayal, fhahn, bmahjour, etiotto, nemanjai, pjeeva01, Whitney.
Herald added subscribers: llvm-commits, rkruppe, hiraditya.
Herald added a project: LLVM.

Interleave for small loops that have reductions inside,
which breaks dependencies, expose ILP and creates opportunities for
the SLP vectorizer pass that is after the LoopVectorizer pass.

This gives very significant performance improvements for some benchmarks.
Because small loops could be in very hot functions in real applications.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D81416

Files:
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/test/Transforms/LoopVectorize/PowerPC/interleave_IC.ll
  llvm/test/Transforms/SLPVectorizer/PowerPC/interleave_SLP.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D81416.269298.patch
Type: text/x-patch
Size: 18260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200608/b55cdd60/attachment.bin>


More information about the llvm-commits mailing list