[PATCH] D100857: [LV] Collect candidates for sinking during VP2P sinkScalarOperands.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 20 07:41:58 PDT 2021


fhahn created this revision.
fhahn added reviewers: Ayal, gilr, rengolin.
Herald added subscribers: bmahjour, rogfer01, bollu, hiraditya.
fhahn requested review of this revision.
Herald added a subscriber: vkmr.
Herald added a project: LLVM.

Some cases currently cannot be handled by the VPlan-to-VPlan version of
sinkScalarOperands. Those include cases where only scalars for some
lanes be sunk (e.g. for induction variables) or the code to extract
scalars from a widened instruction.

Those are still handled by the original sinkScalarOperands, but we can
collect the source instructions during the VPlan-to-VPlan transform, to
avoid unnecessary work.

Note that this also fixes an issues where sinkScalarOperands would sink
instructions that may read from memory. This is not legal, unless we can
prove there are no aliasing stores in between the original and target
location.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D100857

Files:
  llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/lib/Transforms/Vectorize/VPlan.h
  llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
  llvm/lib/Transforms/Vectorize/VPlanTransforms.h
  llvm/test/Transforms/LoopVectorize/X86/x86-predication.ll
  llvm/test/Transforms/LoopVectorize/if-pred-stores.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D100857.338868.patch
Type: text/x-patch
Size: 27925 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210420/e8103e90/attachment.bin>


More information about the llvm-commits mailing list