[llvm] [LAA] Use SCEVPtrToAddr in tryToCreateDiffChecks. (PR #178861)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 9 07:31:16 PST 2026
================
@@ -2173,6 +2173,24 @@ Value *llvm::addRuntimeChecks(
return MemoryRuntimeCheck;
}
+namespace {
+/// Rewriter to replace SCEVPtrToIntExpr with SCEVPtrToAddrExpr when the result
+/// type matches the pointer address type. This allows expressions mixing
+/// ptrtoint and ptrtoaddr to simplify properly.
+struct SCEVPtrToAddrRewriter : SCEVRewriteVisitor<SCEVPtrToAddrRewriter> {
+ const DataLayout &DL;
+ SCEVPtrToAddrRewriter(ScalarEvolution &SE, const DataLayout &DL)
+ : SCEVRewriteVisitor(SE), DL(DL) {}
+
+ const SCEV *visitPtrToIntExpr(const SCEVPtrToIntExpr *E) {
+ const SCEV *Op = visit(E->getOperand());
+ if (E->getType() == DL.getIntPtrType(E->getOperand()->getType()))
----------------
fhahn wrote:
done thanks
https://github.com/llvm/llvm-project/pull/178861
More information about the llvm-commits
mailing list