[PATCH] D121121: [SLP]Do not schedule instructions with constants/argument/phi operands and external users.

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 7 07:42:55 PST 2022


ABataev created this revision.
ABataev added reviewers: RKSimon, dtemirbulatov, anton-afanasyev, vporpo.
Herald added subscribers: hiraditya, qcolombet.
Herald added a project: All.
ABataev requested review of this revision.
Herald added a project: LLVM.

No need to schedule entry nodes where all instructions are not memory
read/write instructions and their operands are either constants, or
arguments, or phis, or instructions from others blocks, or their users
are phis or from the other blocks.
The resulting vector instructions can be placed at
the beginning of the basic block without scheduling (if operands does
not need to be scheduled) or at the end of the block (if users are
outside of the block).
It may save some compile time and scheduling resources.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D121121

Files:
  llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  llvm/test/Transforms/SLPVectorizer/AArch64/gather-reduce.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/gather-root.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-di.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/trunc-insertion.ll
  llvm/test/Transforms/SLPVectorizer/X86/PR35628_2.ll
  llvm/test/Transforms/SLPVectorizer/X86/PR40310.ll
  llvm/test/Transforms/SLPVectorizer/X86/barriercall.ll
  llvm/test/Transforms/SLPVectorizer/X86/consecutive-access.ll
  llvm/test/Transforms/SLPVectorizer/X86/crash_cmpop.ll
  llvm/test/Transforms/SLPVectorizer/X86/crash_exceed_scheduling.ll
  llvm/test/Transforms/SLPVectorizer/X86/cross_block_slp.ll
  llvm/test/Transforms/SLPVectorizer/X86/cycle_dup.ll
  llvm/test/Transforms/SLPVectorizer/X86/external_user.ll
  llvm/test/Transforms/SLPVectorizer/X86/geps-non-pow-2.ll
  llvm/test/Transforms/SLPVectorizer/X86/multi_block.ll
  llvm/test/Transforms/SLPVectorizer/X86/phi.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr47642.ll
  llvm/test/Transforms/SLPVectorizer/X86/rgb_phi.ll
  llvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder2.ll
  llvm/test/Transforms/SLPVectorizer/X86/sitofp-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/X86/sitofp.ll
  llvm/test/Transforms/SLPVectorizer/X86/stores-non-ordered.ll
  llvm/test/Transforms/SLPVectorizer/X86/vectorize-widest-phis.ll
  llvm/test/Transforms/SLPVectorizer/slp-max-phi-size.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D121121.413482.patch
Type: text/x-patch
Size: 101639 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220307/cecabd2d/attachment-0001.bin>


More information about the llvm-commits mailing list