[PATCH] D127531: [SLP]Improve analysis of same/alternate code ops and scheduling.

Valeriy Dmitriev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 26 14:09:15 PDT 2022


vdmitrie added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:1251
+                  getUnderlyingObject(LI2->getPointerOperand()))
+            return LookAheadHeuristics::ScoreAltOpcodes;
           return LookAheadHeuristics::ScoreFail;
----------------
I'm not sure I understand why this is scored as alternating opcodes.
If underlying objects are same that probably means Dist variable must have a value and the value is 0.
i.e. these loads are from same location. right?  It sounds like splat load. 
Where alternating opcodes come from?


================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:7734
+    SmallVectorImpl<Value *> &Right, const TargetLibraryInfo &TLI,
+    const TargetTransformInfo &TTI, const DataLayout &DL, ScalarEvolution &SE,
+    const BoUpSLP &R) {
----------------
TTI argument is unused.


================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:12314
+static bool compareCmp(Value *V, Value *V2, TargetLibraryInfo &TLI,
+                       const TargetTransformInfo &TTI,
                        function_ref<bool(Instruction *)> IsDeleted) {
----------------
TTI argument is unused.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D127531



More information about the llvm-commits mailing list