[PATCH] D99950: [SLP]Avoid mmultiple attempts to vectorize CmpInsts.
Alexey Bataev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 6 06:02:41 PDT 2021
ABataev created this revision.
ABataev added reviewers: spatel, RKSimon, dtemirbulatov, anton-afanasyev.
Herald added a subscriber: hiraditya.
ABataev requested review of this revision.
Herald added a project: LLVM.
No need to lookup through and/or try to vectorize operands of the
CmpInst instructions during attempts to find/vectorize min/max
reductions. Compiler implements postanalysis of the CmpInsts so we can
skip extra attempts in tryToVectorizeHorReductionOrInstOperands and save
compile time.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D99950
Files:
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Index: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
===================================================================
--- llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -7531,7 +7531,7 @@
// Set P to nullptr to avoid re-analysis of phi node in
// matchAssociativeReduction function unless this is the root node.
P = nullptr;
- if (Vectorize(Inst, R)) {
+ if (!isa<CmpInst>(Inst) && Vectorize(Inst, R)) {
Res = true;
continue;
}
@@ -7543,7 +7543,8 @@
for (auto *Op : Inst->operand_values())
if (VisitedInstrs.insert(Op).second)
if (auto *I = dyn_cast<Instruction>(Op))
- if (!isa<PHINode>(I) && !R.isDeleted(I) && I->getParent() == BB)
+ if (!isa<PHINode>(I) && !isa<CmpInst>(I) && !R.isDeleted(I) &&
+ I->getParent() == BB)
Stack.emplace_back(I, Level);
}
return Res;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D99950.335495.patch
Type: text/x-patch
Size: 954 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210406/5411f11e/attachment.bin>
More information about the llvm-commits
mailing list