[PATCH] D125287: [SLP] Improve root steering by building actual trees instead of calling the look-ahead heuristic

Valeriy Dmitriev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 10 08:45:45 PDT 2022


vdmitrie added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:2028-2036
+      SmallVector<Value *, 2> Roots(
+          {Candidates[I].first, Candidates[I].second});
+      buildTree(Roots, /*UserIgnoreList=*/None,
+                RootLookAheadMaxSize.getValue());
+      if (isTreeTinyAndNotFullyVectorizable())
+        continue;
+      reorderTopToBottom();
----------------
ABataev wrote:
> I'm afraid of increasing compile time. All this stuff includes scheduling, which may take lots of time for large basic blocks.
Yep, I agree. this will be more expensive for compile time.
What about combining both worlds? I mean first try to use lookahead heuristics to get the single best. And if we can't narrow down to just one pair only then switch into probing via building trees.
I believe it will not happen too frequently. We can also increase lookahead depth to make it even less frequent when we need to build vectorizable tree.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D125287



More information about the llvm-commits mailing list