[PATCH] D133497: [VPlan] Only generate single instr for stores uniform across all parts.

Ayal Zaks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Sep 11 03:24:15 PDT 2022


Ayal added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:9644
     // generate a single instance.
     Instruction *UI = getUnderlyingInstr();
+    if ((isa<LoadInst>(UI) || isa<StoreInst>(UI)) &&
----------------
Originally relates to D133019. Adding as post-commit notes.
@reames , @fhahn - it would be good in general to limit the use of underlyingInstr in favor of promoting recipe abstraction as much as possible. E.g., ask if this recipe has VPUsers instead of checking if UI's type is void? Why restrict handling of uniform-across-all-parts to loads and stores, should it be captured as in IsUniform[AcrossVF/AcrossUF]? Would be good to give "!Op->getDef()" a meaningful name/API.



Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D133497



More information about the llvm-commits mailing list