[llvm] [InferAddressSpaces] Infer pointer stored and then loaded from global variable (PR #159755)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 19 06:45:34 PST 2025
================
@@ -373,6 +399,19 @@ getPointerOperands(const Value &V, const DataLayout &DL,
auto *P2I = cast<Operator>(Op.getOperand(0));
return {P2I->getOperand(0)};
}
+ case Instruction::Load: {
+ assert(V.getType()->isPtrOrPtrVectorTy());
+ if (const auto *GV = cast<GlobalVariable>(Op.getOperand(0))) {
+ assert(isLocallyAccessedBySimpleLoadsStores(
+ GV, cast<LoadInst>(&V)->getFunction()));
+ SmallVector<Value *, 2> PtrOps;
+ for (const auto *U : GV->users())
+ if (auto *SI = dyn_cast<StoreInst>(U))
+ PtrOps.push_back(const_cast<Value *>(SI->getValueOperand()));
----------------
arsenm wrote:
```suggestion
PtrOps.push_back(SI->getValueOperand());
```
https://github.com/llvm/llvm-project/pull/159755
More information about the llvm-commits
mailing list