@@ -913,8 +913,7 @@ class AllocaSlices::SliceBuilder : public PtrUseVisitor<SliceBuilder> {
913
913
if (!IsOffsetKnown)
914
914
return PI.setAborted(&II);
915
915
916
- if (II.getIntrinsicID() == Intrinsic::lifetime_start ||
917
- II.getIntrinsicID() == Intrinsic::lifetime_end) {
916
+ if (II.isLifetimeStartOrEnd()) {
918
917
ConstantInt *Length = cast<ConstantInt>(II.getArgOperand(0));
919
918
uint64_t Size = std::min(AllocSize - Offset.getLimitedValue(),
920
919
Length->getLimitedValue());
@@ -1807,8 +1806,7 @@ static bool isVectorPromotionViableForSlice(Partition &P, const Slice &S,
1807
1806
if (!S.isSplittable())
1808
1807
return false; // Skip any unsplittable intrinsics.
1809
1808
} else if (IntrinsicInst *II = dyn_cast<IntrinsicInst>(U->getUser())) {
1810
- if (II->getIntrinsicID() != Intrinsic::lifetime_start &&
1811
- II->getIntrinsicID() != Intrinsic::lifetime_end)
1809
+ if (!II->isLifetimeStartOrEnd())
1812
1810
return false;
1813
1811
} else if (U->get()->getType()->getPointerElementType()->isStructTy()) {
1814
1812
// Disable vector promotion when there are loads or stores of an FCA.
@@ -2029,8 +2027,7 @@ static bool isIntegerWideningViableForSlice(const Slice &S,
2029
2027
if (!S.isSplittable())
2030
2028
return false; // Skip any unsplittable intrinsics.
2031
2029
} else if (IntrinsicInst *II = dyn_cast<IntrinsicInst>(U->getUser())) {
2032
- if (II->getIntrinsicID() != Intrinsic::lifetime_start &&
2033
- II->getIntrinsicID() != Intrinsic::lifetime_end)
2030
+ if (!II->isLifetimeStartOrEnd())
2034
2031
return false;
2035
2032
} else {
2036
2033
return false;
@@ -3013,8 +3010,7 @@ class llvm::sroa::AllocaSliceRewriter
3013
3010
}
3014
3011
3015
3012
bool visitIntrinsicInst(IntrinsicInst &II) {
3016
- assert(II.getIntrinsicID() == Intrinsic::lifetime_start ||
3017
- II.getIntrinsicID() == Intrinsic::lifetime_end);
3013
+ assert(II.isLifetimeStartOrEnd());
3018
3014
LLVM_DEBUG(dbgs() << " original: " << II << "\n");
3019
3015
assert(II.getArgOperand(1) == OldPtr);
3020
3016
0 commit comments