Skip to content

Commit 9722265

Browse files
committed
Remove VPReverseInterleavePtrRecipe
1 parent 41a334d commit 9722265

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
@@ -4257,7 +4257,6 @@ static bool willGenerateVectors(VPlan &Plan, ElementCount VF,
42574257
case VPDef::VPDerivedIVSC:
42584258
case VPDef::VPScalarIVStepsSC:
42594259
case VPDef::VPReplicateSC:
4260-
case VPDef::VPReverseInterleavePtrSC:
42614260
case VPDef::VPInstructionSC:
42624261
case VPDef::VPCanonicalIVPHISC:
42634262
case VPDef::VPVectorPointerSC:

llvm/lib/Transforms/Vectorize/VPlan.h

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,6 @@ class VPSingleDefRecipe : public VPRecipeBase, public VPValue {
532532
case VPRecipeBase::VPInstructionSC:
533533
case VPRecipeBase::VPReductionEVLSC:
534534
case VPRecipeBase::VPReductionSC:
535-
case VPRecipeBase::VPReverseInterleavePtrSC:
536535
case VPRecipeBase::VPReplicateSC:
537536
case VPRecipeBase::VPScalarIVStepsSC:
538537
case VPRecipeBase::VPVectorPointerSC:
@@ -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
}
@@ -1812,53 +1810,6 @@ class VPVectorPointerRecipe : public VPRecipeWithIRFlags,
18121810
#endif
18131811
};
18141812

1815-
class VPReverseInterleavePtrRecipe : public VPRecipeWithIRFlags {
1816-
Type *IndexedTy;
1817-
unsigned Factor;
1818-
1819-
public:
1820-
VPReverseInterleavePtrRecipe(VPValue *Ptr, VPValue *VF, Type *IndexedTy,
1821-
unsigned Factor, GEPNoWrapFlags GEPFlags,
1822-
DebugLoc DL)
1823-
: VPRecipeWithIRFlags(VPDef::VPReverseInterleavePtrSC,
1824-
ArrayRef<VPValue *>({Ptr, VF}), GEPFlags, DL),
1825-
IndexedTy(IndexedTy), Factor(Factor) {
1826-
assert(Factor >= 2 && Factor <= 8 && "Unexpected factor");
1827-
}
1828-
1829-
VP_CLASSOF_IMPL(VPDef::VPReverseInterleavePtrSC)
1830-
1831-
VPValue *getPtr() const { return getOperand(0); }
1832-
1833-
VPValue *getVFValue() const { return getOperand(1); }
1834-
1835-
void execute(VPTransformState &State) override;
1836-
1837-
bool onlyFirstLaneUsed(const VPValue *Op) const override {
1838-
assert(is_contained(operands(), Op) &&
1839-
"Op must be an operand of the recipe");
1840-
return true;
1841-
}
1842-
1843-
InstructionCost computeCost(ElementCount VF,
1844-
VPCostContext &Ctx) const override {
1845-
// TODO: Compute accurate cost after retiring the legacy cost model.
1846-
return 0;
1847-
}
1848-
1849-
VPReverseInterleavePtrRecipe *clone() override {
1850-
return new VPReverseInterleavePtrRecipe(getPtr(), getVFValue(), IndexedTy,
1851-
Factor, getGEPNoWrapFlags(),
1852-
getDebugLoc());
1853-
}
1854-
1855-
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
1856-
/// Print the recipe.
1857-
void print(raw_ostream &O, const Twine &Indent,
1858-
VPSlotTracker &SlotTracker) const override;
1859-
#endif
1860-
};
1861-
18621813
/// A pure virtual base class for all recipes modeling header phis, including
18631814
/// phis for first order recurrences, pointer inductions and reductions. The
18641815
/// 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
@@ -283,10 +283,9 @@ Type *VPTypeAnalysis::inferScalarType(const VPValue *V) {
283283
.Case<VPReductionRecipe, VPPredInstPHIRecipe, VPWidenPHIRecipe,
284284
VPScalarIVStepsRecipe, VPWidenGEPRecipe, VPVectorPointerRecipe,
285285
VPVectorEndPointerRecipe, VPWidenCanonicalIVRecipe,
286-
VPPartialReductionRecipe, VPReverseInterleavePtrRecipe>(
287-
[this](const VPRecipeBase *R) {
288-
return inferScalarType(R->getOperand(0));
289-
})
286+
VPPartialReductionRecipe>([this](const VPRecipeBase *R) {
287+
return inferScalarType(R->getOperand(0));
288+
})
290289
// VPInstructionWithType must be handled before VPInstruction.
291290
.Case<VPInstructionWithType, VPWidenIntrinsicRecipe,
292291
VPWidenCastRecipe>(

llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@ bool VPRecipeBase::mayHaveSideEffects() const {
152152
case VPDerivedIVSC:
153153
case VPFirstOrderRecurrencePHISC:
154154
case VPPredInstPHISC:
155-
case VPReverseInterleavePtrSC:
156155
case VPVectorEndPointerSC:
157156
return false;
158157
case VPInstructionSC:
@@ -2383,33 +2382,6 @@ void VPVectorPointerRecipe::print(raw_ostream &O, const Twine &Indent,
23832382
}
23842383
#endif
23852384

2386-
void VPReverseInterleavePtrRecipe::execute(VPTransformState &State) {
2387-
auto &Builder = State.Builder;
2388-
Value *Ptr = State.get(getPtr(), /*IsScalar*/ true);
2389-
Value *RuntimeVF = State.get(getVFValue(), /*IsScalar*/ true);
2390-
Type *IndexTy = Builder.getInt32Ty();
2391-
if (RuntimeVF->getType() != IndexTy)
2392-
RuntimeVF = Builder.CreateZExtOrTrunc(RuntimeVF, IndexTy);
2393-
Value *Index = Builder.CreateSub(RuntimeVF, Builder.getInt32(1));
2394-
Index = Builder.CreateMul(Index, Builder.getInt32(Factor));
2395-
Index = Builder.CreateNeg(Index);
2396-
Value *ReversePtr =
2397-
Builder.CreateGEP(IndexedTy, Ptr, Index, "", getGEPNoWrapFlags());
2398-
2399-
State.set(this, ReversePtr, /*IsScalar*/ true);
2400-
}
2401-
2402-
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
2403-
void VPReverseInterleavePtrRecipe::print(raw_ostream &O, const Twine &Indent,
2404-
VPSlotTracker &SlotTracker) const {
2405-
O << Indent;
2406-
printAsOperand(O, SlotTracker);
2407-
O << " = reverse-interleave-ptr";
2408-
printFlags(O);
2409-
printOperands(O, SlotTracker);
2410-
}
2411-
#endif
2412-
24132385
void VPBlendRecipe::execute(VPTransformState &State) {
24142386
assert(isNormalized() && "Expected blend to be normalized!");
24152387
// 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
@@ -337,7 +337,6 @@ class VPDef {
337337
VPInterleaveSC,
338338
VPReductionEVLSC,
339339
VPReductionSC,
340-
VPReverseInterleavePtrSC,
341340
VPPartialReductionSC,
342341
VPReplicateSC,
343342
VPScalarIVStepsSC,

0 commit comments

Comments
 (0)