[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