From 24f95ab25a9109ba3fc28ec4149b8275e2aa9a41 Mon Sep 17 00:00:00 2001 From: Anatoly Myachev Date: Sun, 20 Oct 2024 10:02:39 +0000 Subject: [PATCH 1/2] Fix coverity issues Signed-off-by: Anatoly Myachev --- third_party/intel/include/Analysis/AxisInfo.h | 3 +- third_party/intel/lib/Analysis/AxisInfo.cpp | 42 ++++++++++++------- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/third_party/intel/include/Analysis/AxisInfo.h b/third_party/intel/include/Analysis/AxisInfo.h index 850859bef7..3351d2030b 100644 --- a/third_party/intel/include/Analysis/AxisInfo.h +++ b/third_party/intel/include/Analysis/AxisInfo.h @@ -28,7 +28,8 @@ class AxisInfo { AxisInfo() : AxisInfo({}, {}, {}) {} AxisInfo(DimVectorT contiguity, DimVectorT divisibility, DimVectorT constancy) - : AxisInfo(contiguity, divisibility, constancy, std::nullopt) {} + : AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy), std::nullopt) {} AxisInfo(DimVectorT contiguity, DimVectorT divisibility, DimVectorT constancy, std::optional constantValue) diff --git a/third_party/intel/lib/Analysis/AxisInfo.cpp b/third_party/intel/lib/Analysis/AxisInfo.cpp index aeb8e12b5b..feee1a52be 100644 --- a/third_party/intel/lib/Analysis/AxisInfo.cpp +++ b/third_party/intel/lib/Analysis/AxisInfo.cpp @@ -126,7 +126,8 @@ class BinaryOpVisitorImpl : public AxisInfoVisitorImpl { divisibility.push_back(getDivisibility(op, lhsInfo, rhsInfo, d)); } } - return AxisInfo(contiguity, divisibility, constancy, constantValue); + return AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy), constantValue); } protected: @@ -546,7 +547,8 @@ class SplatOpAxisInfoVisitor final divisibility.push_back(opInfo.getDivisibility(0)); constancy.push_back(retTy.getShape()[d]); } - return AxisInfo(contiguity, divisibility, constancy, + return AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy), operands[0]->getValue().getConstantValue()); } }; @@ -577,7 +579,8 @@ class LoadOpAxisInfoVisitor final : public AxisInfoVisitorImpl { maskInfo.has_value() ? maskInfo->getConstancy(d) : 0)); } - return AxisInfo(contiguity, divisibility, constancy); + return AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy)); } }; @@ -611,7 +614,8 @@ class ExpandDimsOpAxisInfoVisitor final contiguity.insert(contiguity.begin() + op.getAxis(), 1); divisibility.insert(divisibility.begin() + op.getAxis(), newDivisibility); constancy.insert(constancy.begin() + op.getAxis(), 1); - return AxisInfo(contiguity, divisibility, constancy, + return AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy), operands[0]->getValue().getConstantValue()); } }; @@ -640,7 +644,8 @@ class BroadcastOpAxisInfoVisitor final constancy.push_back(opShape[d] == 1 ? retShape[d] : opInfo.getConstancy(d)); } - return AxisInfo(contiguity, divisibility, constancy, + return AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy), operands[0]->getValue().getConstantValue()); } }; @@ -715,7 +720,8 @@ class CmpOpAxisInfoVisitor final : public AxisInfoVisitorImpl { contiguity.push_back(1); } - return AxisInfo(contiguity, divisibility, constancy, constantValue); + return AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy), constantValue); } private: @@ -843,7 +849,8 @@ class SelectOpAxisInfoVisitor final : public AxisInfoVisitorImpl { constantValue = lhsInfo.getConstantValue(); } - return AxisInfo(contiguity, divisibility, constancy, constantValue); + return AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy), constantValue); } }; @@ -996,7 +1003,8 @@ class MaxMinOpAxisInfoVisitor final : public AxisInfoVisitorImpl { contiguity.push_back( std::min(lhsInfo.getContiguity(d), rhsInfo.getContiguity(d))); } - return AxisInfo(contiguity, divisibility, constancy, std::nullopt); + return AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy), std::nullopt); } } }; @@ -1046,7 +1054,8 @@ class MakeTensorPtrOpAxisInfoVisitor final AxisInfo::DimVectorT constancy{1, 1}; - return AxisInfo(contiguity, divisibility, constancy); + return AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy)); } }; @@ -1130,8 +1139,8 @@ LogicalResult AxisInfoAnalysis::visitOperation( auto vals = cast(attr).getValues(); newConstancy = AxisInfo::DimVectorT(vals.begin(), vals.end()); } - curr = AxisInfo(newContiguity, newDivisibility, newConstancy, - curr.getConstantValue()); + curr = AxisInfo(std::move(newContiguity), std::move(newDivisibility), + std::move(newConstancy), curr.getConstantValue()); // join all lattice elements for (auto *result : results) propagateIfChanged(result, result->join(curr)); @@ -1148,7 +1157,8 @@ void AxisInfoAnalysis::visitForOpInductionVar( AxisInfo::DimVectorT knownConstancy(1, 1); knownDivisibility[0] = gcd(lb.getDivisibility(0), step.getDivisibility(0)); auto inductionVar = - AxisInfo(knownContiguity, knownDivisibility, knownConstancy); + AxisInfo(std::move(knownContiguity), std::move(knownDivisibility), + std::move(knownConstancy)); (void)argLattices[0]->join(inductionVar); } @@ -1235,7 +1245,8 @@ void AxisInfo::initPessimisticStateFromFunc(int argNumber, T funcOp, } } - return AxisInfo(knownContiguity, knownDivisibility, knownConstancy); + return AxisInfo(std::move(knownContiguity), std::move(knownDivisibility), + std::move(knownConstancy)); } /*static*/ AxisInfo AxisInfo::join(const AxisInfo &lhs, const AxisInfo &rhs) { @@ -1257,7 +1268,8 @@ void AxisInfo::initPessimisticStateFromFunc(int argNumber, T funcOp, rhs.getConstantValue().has_value() && lhs.getConstantValue() == rhs.getConstantValue()) constantValue = lhs.getConstantValue(); - return AxisInfo(contiguity, divisibility, constancy, constantValue); + return AxisInfo(std::move(contiguity), std::move(divisibility), + std::move(constancy), constantValue); } unsigned ModuleAxisInfoAnalysis::getPtrContiguity(Value ptr) { @@ -1344,7 +1356,7 @@ void ModuleAxisInfoAnalysis::initialize(FunctionOpInterface funcOp) { } else { curAxisInfo = axisInfo; } - (*axisInfoMap)[value] = curAxisInfo; + (*axisInfoMap)[value] = std::move(curAxisInfo); }; funcOp.walk([&](Operation *op) { for (auto value : op->getResults()) { From 8d5057d4a935a364a63bceec8257fad8072a320e Mon Sep 17 00:00:00 2001 From: Anatoly Myachev Date: Sun, 20 Oct 2024 10:57:23 +0000 Subject: [PATCH 2/2] use const& for AxisInfo constructors Signed-off-by: Anatoly Myachev --- third_party/intel/include/Analysis/AxisInfo.h | 10 ++--- third_party/intel/lib/Analysis/AxisInfo.cpp | 40 +++++++------------ 2 files changed, 19 insertions(+), 31 deletions(-) diff --git a/third_party/intel/include/Analysis/AxisInfo.h b/third_party/intel/include/Analysis/AxisInfo.h index 3351d2030b..3016e02cad 100644 --- a/third_party/intel/include/Analysis/AxisInfo.h +++ b/third_party/intel/include/Analysis/AxisInfo.h @@ -27,12 +27,12 @@ class AxisInfo { public: AxisInfo() : AxisInfo({}, {}, {}) {} - AxisInfo(DimVectorT contiguity, DimVectorT divisibility, DimVectorT constancy) - : AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy), std::nullopt) {} + AxisInfo(const DimVectorT &contiguity, const DimVectorT &divisibility, + const DimVectorT &constancy) + : AxisInfo(contiguity, divisibility, constancy, std::nullopt) {} - AxisInfo(DimVectorT contiguity, DimVectorT divisibility, DimVectorT constancy, - std::optional constantValue) + AxisInfo(const DimVectorT &contiguity, const DimVectorT &divisibility, + const DimVectorT &constancy, std::optional constantValue) : contiguity(contiguity), divisibility(divisibility), constancy(constancy), constantValue(constantValue) { assert(divisibility.size() == contiguity.size()); diff --git a/third_party/intel/lib/Analysis/AxisInfo.cpp b/third_party/intel/lib/Analysis/AxisInfo.cpp index feee1a52be..0411f8abbf 100644 --- a/third_party/intel/lib/Analysis/AxisInfo.cpp +++ b/third_party/intel/lib/Analysis/AxisInfo.cpp @@ -126,8 +126,7 @@ class BinaryOpVisitorImpl : public AxisInfoVisitorImpl { divisibility.push_back(getDivisibility(op, lhsInfo, rhsInfo, d)); } } - return AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy), constantValue); + return AxisInfo(contiguity, divisibility, constancy, constantValue); } protected: @@ -547,8 +546,7 @@ class SplatOpAxisInfoVisitor final divisibility.push_back(opInfo.getDivisibility(0)); constancy.push_back(retTy.getShape()[d]); } - return AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy), + return AxisInfo(contiguity, divisibility, constancy, operands[0]->getValue().getConstantValue()); } }; @@ -579,8 +577,7 @@ class LoadOpAxisInfoVisitor final : public AxisInfoVisitorImpl { maskInfo.has_value() ? maskInfo->getConstancy(d) : 0)); } - return AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy)); + return AxisInfo(contiguity, divisibility, constancy); } }; @@ -614,8 +611,7 @@ class ExpandDimsOpAxisInfoVisitor final contiguity.insert(contiguity.begin() + op.getAxis(), 1); divisibility.insert(divisibility.begin() + op.getAxis(), newDivisibility); constancy.insert(constancy.begin() + op.getAxis(), 1); - return AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy), + return AxisInfo(contiguity, divisibility, constancy, operands[0]->getValue().getConstantValue()); } }; @@ -644,8 +640,7 @@ class BroadcastOpAxisInfoVisitor final constancy.push_back(opShape[d] == 1 ? retShape[d] : opInfo.getConstancy(d)); } - return AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy), + return AxisInfo(contiguity, divisibility, constancy, operands[0]->getValue().getConstantValue()); } }; @@ -720,8 +715,7 @@ class CmpOpAxisInfoVisitor final : public AxisInfoVisitorImpl { contiguity.push_back(1); } - return AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy), constantValue); + return AxisInfo(contiguity, divisibility, constancy, constantValue); } private: @@ -849,8 +843,7 @@ class SelectOpAxisInfoVisitor final : public AxisInfoVisitorImpl { constantValue = lhsInfo.getConstantValue(); } - return AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy), constantValue); + return AxisInfo(contiguity, divisibility, constancy, constantValue); } }; @@ -1003,8 +996,7 @@ class MaxMinOpAxisInfoVisitor final : public AxisInfoVisitorImpl { contiguity.push_back( std::min(lhsInfo.getContiguity(d), rhsInfo.getContiguity(d))); } - return AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy), std::nullopt); + return AxisInfo(contiguity, divisibility, constancy, std::nullopt); } } }; @@ -1054,8 +1046,7 @@ class MakeTensorPtrOpAxisInfoVisitor final AxisInfo::DimVectorT constancy{1, 1}; - return AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy)); + return AxisInfo(contiguity, divisibility, constancy); } }; @@ -1139,8 +1130,8 @@ LogicalResult AxisInfoAnalysis::visitOperation( auto vals = cast(attr).getValues(); newConstancy = AxisInfo::DimVectorT(vals.begin(), vals.end()); } - curr = AxisInfo(std::move(newContiguity), std::move(newDivisibility), - std::move(newConstancy), curr.getConstantValue()); + curr = AxisInfo(newContiguity, newDivisibility, newConstancy, + curr.getConstantValue()); // join all lattice elements for (auto *result : results) propagateIfChanged(result, result->join(curr)); @@ -1157,8 +1148,7 @@ void AxisInfoAnalysis::visitForOpInductionVar( AxisInfo::DimVectorT knownConstancy(1, 1); knownDivisibility[0] = gcd(lb.getDivisibility(0), step.getDivisibility(0)); auto inductionVar = - AxisInfo(std::move(knownContiguity), std::move(knownDivisibility), - std::move(knownConstancy)); + AxisInfo(knownContiguity, knownDivisibility, knownConstancy); (void)argLattices[0]->join(inductionVar); } @@ -1245,8 +1235,7 @@ void AxisInfo::initPessimisticStateFromFunc(int argNumber, T funcOp, } } - return AxisInfo(std::move(knownContiguity), std::move(knownDivisibility), - std::move(knownConstancy)); + return AxisInfo(knownContiguity, knownDivisibility, knownConstancy); } /*static*/ AxisInfo AxisInfo::join(const AxisInfo &lhs, const AxisInfo &rhs) { @@ -1268,8 +1257,7 @@ void AxisInfo::initPessimisticStateFromFunc(int argNumber, T funcOp, rhs.getConstantValue().has_value() && lhs.getConstantValue() == rhs.getConstantValue()) constantValue = lhs.getConstantValue(); - return AxisInfo(std::move(contiguity), std::move(divisibility), - std::move(constancy), constantValue); + return AxisInfo(contiguity, divisibility, constancy, constantValue); } unsigned ModuleAxisInfoAnalysis::getPtrContiguity(Value ptr) {