@@ -123,7 +123,8 @@ class BinaryOpVisitorImpl : public AxisInfoVisitorImpl<OpTy> {
123123 divisibility.push_back (getDivisibility (op, lhsInfo, rhsInfo, d));
124124 }
125125 }
126- return AxisInfo (contiguity, divisibility, constancy, constantValue);
126+ return AxisInfo (std::move (contiguity), std::move (divisibility),
127+ std::move (constancy), constantValue);
127128 }
128129
129130protected:
@@ -543,7 +544,8 @@ class SplatOpAxisInfoVisitor final
543544 divisibility.push_back (opInfo.getDivisibility (0 ));
544545 constancy.push_back (retTy.getShape ()[d]);
545546 }
546- return AxisInfo (contiguity, divisibility, constancy,
547+ return AxisInfo (std::move (contiguity), std::move (divisibility),
548+ std::move (constancy),
547549 operands[0 ]->getValue ().getConstantValue ());
548550 }
549551};
@@ -574,7 +576,8 @@ class LoadOpAxisInfoVisitor final : public AxisInfoVisitorImpl<triton::LoadOp> {
574576 maskInfo.has_value () ? maskInfo->getConstancy (d) : 0 ));
575577 }
576578
577- return AxisInfo (contiguity, divisibility, constancy);
579+ return AxisInfo (std::move (contiguity), std::move (divisibility),
580+ std::move (constancy));
578581 }
579582};
580583
@@ -608,7 +611,8 @@ class ExpandDimsOpAxisInfoVisitor final
608611 contiguity.insert (contiguity.begin () + op.getAxis (), 1 );
609612 divisibility.insert (divisibility.begin () + op.getAxis (), newDivisibility);
610613 constancy.insert (constancy.begin () + op.getAxis (), 1 );
611- return AxisInfo (contiguity, divisibility, constancy,
614+ return AxisInfo (std::move (contiguity), std::move (divisibility),
615+ std::move (constancy),
612616 operands[0 ]->getValue ().getConstantValue ());
613617 }
614618};
@@ -637,7 +641,8 @@ class BroadcastOpAxisInfoVisitor final
637641 constancy.push_back (opShape[d] == 1 ? retShape[d]
638642 : opInfo.getConstancy (d));
639643 }
640- return AxisInfo (contiguity, divisibility, constancy,
644+ return AxisInfo (std::move (contiguity), std::move (divisibility),
645+ std::move (constancy),
641646 operands[0 ]->getValue ().getConstantValue ());
642647 }
643648};
@@ -712,7 +717,8 @@ class CmpOpAxisInfoVisitor final : public AxisInfoVisitorImpl<OpTy> {
712717 contiguity.push_back (1 );
713718 }
714719
715- return AxisInfo (contiguity, divisibility, constancy, constantValue);
720+ return AxisInfo (std::move (contiguity), std::move (divisibility),
721+ std::move (constancy), constantValue);
716722 }
717723
718724private:
@@ -840,7 +846,8 @@ class SelectOpAxisInfoVisitor final : public AxisInfoVisitorImpl<OpTy> {
840846 constantValue = lhsInfo.getConstantValue ();
841847 }
842848
843- return AxisInfo (contiguity, divisibility, constancy, constantValue);
849+ return AxisInfo (std::move (contiguity), std::move (divisibility),
850+ std::move (constancy), constantValue);
844851 }
845852};
846853
@@ -993,7 +1000,8 @@ class MaxMinOpAxisInfoVisitor final : public AxisInfoVisitorImpl<OpTy> {
9931000 contiguity.push_back (
9941001 std::min (lhsInfo.getContiguity (d), rhsInfo.getContiguity (d)));
9951002 }
996- return AxisInfo (contiguity, divisibility, constancy, std::nullopt );
1003+ return AxisInfo (std::move (contiguity), std::move (divisibility),
1004+ std::move (constancy), std::nullopt );
9971005 }
9981006 }
9991007};
@@ -1038,7 +1046,8 @@ class MakeTensorPtrOpAxisInfoVisitor final
10381046 constancy.push_back (1 );
10391047 }
10401048
1041- auto axisInfo = AxisInfo (contiguity, divisibility, constancy);
1049+ auto axisInfo = AxisInfo (std::move (contiguity), std::move (divisibility),
1050+ std::move (constancy));
10421051
10431052 LLVM_DEBUG ({
10441053 std::string axisStr;
@@ -1143,8 +1152,8 @@ LogicalResult AxisInfoAnalysis::visitOperation(
11431152 auto vals = cast<DenseElementsAttr>(attr).getValues <int >();
11441153 newConstancy = AxisInfo::DimVectorT (vals.begin (), vals.end ());
11451154 }
1146- curr = AxisInfo (newContiguity, newDivisibility, newConstancy ,
1147- curr.getConstantValue ());
1155+ curr = AxisInfo (std::move ( newContiguity), std::move ( newDivisibility) ,
1156+ std::move (newConstancy), curr.getConstantValue ());
11481157 // join all lattice elements
11491158 for (auto *result : results)
11501159 propagateIfChanged (result, result->join (curr));
@@ -1154,17 +1163,18 @@ LogicalResult AxisInfoAnalysis::visitOperation(
11541163void AxisInfoAnalysis::visitForOpInductionVar (
11551164 scf::ForOp op, ArrayRef<dataflow::Lattice<AxisInfo> *> argLattices) {
11561165 ProgramPoint programPoint (op);
1157- const auto lb =
1166+ const auto & lb =
11581167 getLatticeElementFor (&programPoint, op.getLowerBound ())->getValue ();
1159- const auto step =
1168+ const auto & step =
11601169 getLatticeElementFor (&programPoint, op.getStep ())->getValue ();
11611170
11621171 AxisInfo::DimVectorT knownContiguity (1 , 1 );
11631172 AxisInfo::DimVectorT knownDivisibility (1 , 1 );
11641173 AxisInfo::DimVectorT knownConstancy (1 , 1 );
11651174 knownDivisibility[0 ] = gcd (lb.getDivisibility (0 ), step.getDivisibility (0 ));
11661175 auto inductionVar =
1167- AxisInfo (knownContiguity, knownDivisibility, knownConstancy);
1176+ AxisInfo (std::move (knownContiguity), std::move (knownDivisibility),
1177+ std::move (knownConstancy));
11681178 (void )argLattices[0 ]->join (inductionVar);
11691179}
11701180
0 commit comments