[llvm] 3cef99f - [SLP] Use early return in NoCallIntrinsic
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 30 08:03:01 PST 2025
Author: Philip Reames
Date: 2025-01-30T08:02:40-08:00
New Revision: 3cef99f652422405f0b071ab9045c6f6a429b446
URL: https://github.com/llvm/llvm-project/commit/3cef99f652422405f0b071ab9045c6f6a429b446
DIFF: https://github.com/llvm/llvm-project/commit/3cef99f652422405f0b071ab9045c6f6a429b446.diff
LOG: [SLP] Use early return in NoCallIntrinsic
Added:
Modified:
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 5c02bc7bfa90aa..f89944f5a0bfc7 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -12231,25 +12231,24 @@ InstructionCost BoUpSLP::getSpillCost() const {
}
auto NoCallIntrinsic = [this](Instruction *I) {
- if (auto *II = dyn_cast<IntrinsicInst>(I)) {
- if (II->isAssumeLikeIntrinsic())
- return true;
- FastMathFlags FMF;
- SmallVector<Type *, 4> Tys;
- for (auto &ArgOp : II->args())
- Tys.push_back(ArgOp->getType());
- if (auto *FPMO = dyn_cast<FPMathOperator>(II))
- FMF = FPMO->getFastMathFlags();
- IntrinsicCostAttributes ICA(II->getIntrinsicID(), II->getType(), Tys,
- FMF);
- InstructionCost IntrCost =
- TTI->getIntrinsicInstrCost(ICA, TTI::TCK_RecipThroughput);
- InstructionCost CallCost = TTI->getCallInstrCost(
- nullptr, II->getType(), Tys, TTI::TCK_RecipThroughput);
- if (IntrCost < CallCost)
- return true;
- }
- return false;
+ auto *II = dyn_cast<IntrinsicInst>(I);
+ if (!II)
+ return false;
+ if (II->isAssumeLikeIntrinsic())
+ return true;
+ FastMathFlags FMF;
+ SmallVector<Type *, 4> Tys;
+ for (auto &ArgOp : II->args())
+ Tys.push_back(ArgOp->getType());
+ if (auto *FPMO = dyn_cast<FPMathOperator>(II))
+ FMF = FPMO->getFastMathFlags();
+ IntrinsicCostAttributes ICA(II->getIntrinsicID(), II->getType(), Tys,
+ FMF);
+ InstructionCost IntrCost =
+ TTI->getIntrinsicInstrCost(ICA, TTI::TCK_RecipThroughput);
+ InstructionCost CallCost = TTI->getCallInstrCost(
+ nullptr, II->getType(), Tys, TTI::TCK_RecipThroughput);
+ return IntrCost < CallCost;
};
// Debug information does not impact spill cost.
More information about the llvm-commits
mailing list