Skip to content

Commit 2f9631f

Browse files
committed
Remove VPReverseInterleavePtrRecipe
1 parent 6270d1a commit 2f9631f

File tree

5 files changed

+3
-83
lines changed

5 files changed

+3
-83
lines changed

llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4256,7 +4256,6 @@ static bool willGenerateVectors(VPlan &Plan, ElementCount VF,
42564256
case VPDef::VPDerivedIVSC:
42574257
case VPDef::VPScalarIVStepsSC:
42584258
case VPDef::VPReplicateSC:
4259-
case VPDef::VPReverseInterleavePtrSC:
42604259
case VPDef::VPInstructionSC:
42614260
case VPDef::VPCanonicalIVPHISC:
42624261
case VPDef::VPVectorPointerSC:

llvm/lib/Transforms/Vectorize/VPlan.h

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,6 @@ class VPSingleDefRecipe : public VPRecipeBase, public VPValue {
531531
case VPRecipeBase::VPInstructionSC:
532532
case VPRecipeBase::VPReductionEVLSC:
533533
case VPRecipeBase::VPReductionSC:
534-
case VPRecipeBase::VPReverseInterleavePtrSC:
535534
case VPRecipeBase::VPMulAccumulateReductionSC:
536535
case VPRecipeBase::VPExtendedReductionSC:
537536
case VPRecipeBase::VPReplicateSC:
@@ -852,7 +851,6 @@ struct VPRecipeWithIRFlags : public VPSingleDefRecipe, public VPIRFlags {
852851
R->getVPDefID() == VPRecipeBase::VPReductionSC ||
853852
R->getVPDefID() == VPRecipeBase::VPReductionEVLSC ||
854853
R->getVPDefID() == VPRecipeBase::VPReplicateSC ||
855-
R->getVPDefID() == VPRecipeBase::VPReverseInterleavePtrSC ||
856854
R->getVPDefID() == VPRecipeBase::VPVectorEndPointerSC ||
857855
R->getVPDefID() == VPRecipeBase::VPVectorPointerSC ||
858856
R->getVPDefID() == VPRecipeBase::VPExtendedReductionSC ||
@@ -1803,53 +1801,6 @@ class VPVectorPointerRecipe : public VPRecipeWithIRFlags,
18031801
#endif
18041802
};
18051803

1806-
class VPReverseInterleavePtrRecipe : public VPRecipeWithIRFlags {
1807-
Type *IndexedTy;
1808-
unsigned Factor;
1809-
1810-
public:
1811-
VPReverseInterleavePtrRecipe(VPValue *Ptr, VPValue *VF, Type *IndexedTy,
1812-
unsigned Factor, GEPNoWrapFlags GEPFlags,
1813-
DebugLoc DL)
1814-
: VPRecipeWithIRFlags(VPDef::VPReverseInterleavePtrSC,
1815-
ArrayRef<VPValue *>({Ptr, VF}), GEPFlags, DL),
1816-
IndexedTy(IndexedTy), Factor(Factor) {
1817-
assert(Factor >= 2 && Factor <= 8 && "Unexpected factor");
1818-
}
1819-
1820-
VP_CLASSOF_IMPL(VPDef::VPReverseInterleavePtrSC)
1821-
1822-
VPValue *getPtr() const { return getOperand(0); }
1823-
1824-
VPValue *getVFValue() const { return getOperand(1); }
1825-
1826-
void execute(VPTransformState &State) override;
1827-
1828-
bool onlyFirstLaneUsed(const VPValue *Op) const override {
1829-
assert(is_contained(operands(), Op) &&
1830-
"Op must be an operand of the recipe");
1831-
return true;
1832-
}
1833-
1834-
InstructionCost computeCost(ElementCount VF,
1835-
VPCostContext &Ctx) const override {
1836-
// TODO: Compute accurate cost after retiring the legacy cost model.
1837-
return 0;
1838-
}
1839-
1840-
VPReverseInterleavePtrRecipe *clone() override {
1841-
return new VPReverseInterleavePtrRecipe(getPtr(), getVFValue(), IndexedTy,
1842-
Factor, getGEPNoWrapFlags(),
1843-
getDebugLoc());
1844-
}
1845-
1846-
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
1847-
/// Print the recipe.
1848-
void print(raw_ostream &O, const Twine &Indent,
1849-
VPSlotTracker &SlotTracker) const override;
1850-
#endif
1851-
};
1852-
18531804
/// A pure virtual base class for all recipes modeling header phis, including
18541805
/// phis for first order recurrences, pointer inductions and reductions. The
18551806
/// start value is the first operand of the recipe and the incoming value from

llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -282,10 +282,9 @@ Type *VPTypeAnalysis::inferScalarType(const VPValue *V) {
282282
.Case<VPReductionRecipe, VPPredInstPHIRecipe, VPWidenPHIRecipe,
283283
VPScalarIVStepsRecipe, VPWidenGEPRecipe, VPVectorPointerRecipe,
284284
VPVectorEndPointerRecipe, VPWidenCanonicalIVRecipe,
285-
VPPartialReductionRecipe, VPReverseInterleavePtrRecipe>(
286-
[this](const VPRecipeBase *R) {
287-
return inferScalarType(R->getOperand(0));
288-
})
285+
VPPartialReductionRecipe>([this](const VPRecipeBase *R) {
286+
return inferScalarType(R->getOperand(0));
287+
})
289288
// VPInstructionWithType must be handled before VPInstruction.
290289
.Case<VPInstructionWithType, VPWidenIntrinsicRecipe,
291290
VPWidenCastRecipe>(

llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ bool VPRecipeBase::mayHaveSideEffects() const {
150150
case VPDerivedIVSC:
151151
case VPFirstOrderRecurrencePHISC:
152152
case VPPredInstPHISC:
153-
case VPReverseInterleavePtrSC:
154153
case VPVectorEndPointerSC:
155154
return false;
156155
case VPInstructionSC:
@@ -2266,33 +2265,6 @@ void VPVectorPointerRecipe::print(raw_ostream &O, const Twine &Indent,
22662265
}
22672266
#endif
22682267

2269-
void VPReverseInterleavePtrRecipe::execute(VPTransformState &State) {
2270-
auto &Builder = State.Builder;
2271-
Value *Ptr = State.get(getPtr(), /*IsScalar*/ true);
2272-
Value *RuntimeVF = State.get(getVFValue(), /*IsScalar*/ true);
2273-
Type *IndexTy = Builder.getInt32Ty();
2274-
if (RuntimeVF->getType() != IndexTy)
2275-
RuntimeVF = Builder.CreateZExtOrTrunc(RuntimeVF, IndexTy);
2276-
Value *Index = Builder.CreateSub(RuntimeVF, Builder.getInt32(1));
2277-
Index = Builder.CreateMul(Index, Builder.getInt32(Factor));
2278-
Index = Builder.CreateNeg(Index);
2279-
Value *ReversePtr =
2280-
Builder.CreateGEP(IndexedTy, Ptr, Index, "", getGEPNoWrapFlags());
2281-
2282-
State.set(this, ReversePtr, /*IsScalar*/ true);
2283-
}
2284-
2285-
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
2286-
void VPReverseInterleavePtrRecipe::print(raw_ostream &O, const Twine &Indent,
2287-
VPSlotTracker &SlotTracker) const {
2288-
O << Indent;
2289-
printAsOperand(O, SlotTracker);
2290-
O << " = reverse-interleave-ptr";
2291-
printFlags(O);
2292-
printOperands(O, SlotTracker);
2293-
}
2294-
#endif
2295-
22962268
void VPBlendRecipe::execute(VPTransformState &State) {
22972269
assert(isNormalized() && "Expected blend to be normalized!");
22982270
// We know that all PHIs in non-header blocks are converted into

llvm/lib/Transforms/Vectorize/VPlanValue.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,6 @@ class VPDef {
335335
VPInterleaveSC,
336336
VPReductionEVLSC,
337337
VPReductionSC,
338-
VPReverseInterleavePtrSC,
339338
VPMulAccumulateReductionSC,
340339
VPExtendedReductionSC,
341340
VPPartialReductionSC,

0 commit comments

Comments
 (0)