[llvm-branch-commits] [llvm] SROA: Recognize llvm.protected.field.ptr intrinsics. (PR #151650)
Peter Collingbourne via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Dec 11 18:21:44 PST 2025
================
@@ -5875,6 +5895,32 @@ SROA::runOnAlloca(AllocaInst &AI) {
return {Changed, CFGChanged};
}
+ for (auto &P : AS.partitions()) {
+ std::optional<Value *> ProtectedFieldDisc;
+ // For now, we can't split if a field is accessed both via protected
+ // field and not.
+ for (Slice &S : P) {
+ if (auto *II = dyn_cast<IntrinsicInst>(S.getUse()->getUser()))
+ if (II->getIntrinsicID() == Intrinsic::lifetime_start ||
+ II->getIntrinsicID() == Intrinsic::lifetime_end)
+ continue;
+ if (!ProtectedFieldDisc)
+ ProtectedFieldDisc = S.ProtectedFieldDisc;
+ if (*ProtectedFieldDisc != S.ProtectedFieldDisc)
----------------
pcc wrote:
Okay, I added a case `mixed2` where they are both non-null.
https://github.com/llvm/llvm-project/pull/151650
More information about the llvm-branch-commits
mailing list