[llvm] [ConstraintElim] Use constraints from bounded memory accesses (PR #155253)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 26 07:55:32 PDT 2025
================
@@ -1960,6 +2030,26 @@ static bool eliminateConstraints(Function &F, DominatorTree &DT, LoopInfo &LI,
}
continue;
}
+
+ auto &DL = F.getDataLayout();
+ auto AddFactsAboutIndices = [&](Value *Ptr, Type *AccessType) {
+ CmpPredicate Pred;
+ Value *A, *B;
+ if (getConstraintFromMemoryAccess(
+ *cast<GetElementPtrInst>(Ptr),
+ DL.getTypeStoreSize(AccessType).getFixedValue(), Pred, A, B, DL,
+ TLI))
+ AddFact(Pred, A, B);
+ };
+
+ if (auto *LI = dyn_cast<LoadInst>(CB.Inst)) {
+ AddFactsAboutIndices(LI->getPointerOperand(), LI->getAccessType());
+ continue;
+ }
+ if (auto *SI = dyn_cast<StoreInst>(CB.Inst)) {
+ AddFactsAboutIndices(SI->getPointerOperand(), SI->getAccessType());
+ continue;
+ }
----------------
nikic wrote:
Why is the handling split this way with some cases handled as condition facts and others as inst facts? Why isn't this always a condition fact?
https://github.com/llvm/llvm-project/pull/155253
More information about the llvm-commits
mailing list