[PATCH] D103458: [SLP]Improve gathering of scalar elements.

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 1 06:53:16 PDT 2021


ABataev created this revision.
ABataev added reviewers: RKSimon, spatel, dtemirbulatov, anton-afanasyev, vdmitrie.
Herald added a subscriber: hiraditya.
ABataev requested review of this revision.
Herald added a project: LLVM.

1. Better sorting of scalars to be gathered. Trying to insert constants/arguments/instructions-out-of-loop at first and only then the instructions which are inside the loop. It improves hoisting of invariant insertelements instructions.
2. Better detection of shuffle candidates in gathering function.
3. The cost of insertelement for constants is 0.

Part of D57059 <https://reviews.llvm.org/D57059>.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D103458

Files:
  llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  llvm/test/Transforms/SLPVectorizer/AArch64/insertelement-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/insertelement.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/trunc-insertion.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
  llvm/test/Transforms/SLPVectorizer/SystemZ/pr34619.ll
  llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
  llvm/test/Transforms/SLPVectorizer/X86/commutativity.ll
  llvm/test/Transforms/SLPVectorizer/X86/crash_exceed_scheduling.ll
  llvm/test/Transforms/SLPVectorizer/X86/crash_lencod.ll
  llvm/test/Transforms/SLPVectorizer/X86/crash_mandeltext.ll
  llvm/test/Transforms/SLPVectorizer/X86/crash_smallpt.ll
  llvm/test/Transforms/SLPVectorizer/X86/geps-non-pow-2.ll
  llvm/test/Transforms/SLPVectorizer/X86/hoist.ll
  llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
  llvm/test/Transforms/SLPVectorizer/X86/jumbled-load-multiuse.ll
  llvm/test/Transforms/SLPVectorizer/X86/jumbled-load-used-in-phi.ll
  llvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll
  llvm/test/Transforms/SLPVectorizer/X86/partail.ll
  llvm/test/Transforms/SLPVectorizer/X86/phi3.ll
  llvm/test/Transforms/SLPVectorizer/X86/phi_landingpad.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr35497.ll
  llvm/test/Transforms/SLPVectorizer/X86/reduction2.ll
  llvm/test/Transforms/SLPVectorizer/X86/remark_extract_broadcast.ll
  llvm/test/Transforms/SLPVectorizer/X86/reorder_repeated_ops.ll
  llvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll
  llvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
  llvm/test/Transforms/SLPVectorizer/X86/value-bug-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/X86/value-bug.ll
  llvm/test/Transforms/SLPVectorizer/slp-max-phi-size.ll
  llvm/test/Transforms/SLPVectorizer/slp-umax-rdx-matcher-crash.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D103458.348960.patch
Type: text/x-patch
Size: 135189 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210601/4306f54f/attachment.bin>


More information about the llvm-commits mailing list