[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