[llvm] [polly] [delinearize] Extract array dimensions from alloca and global declarations (PR #156342)

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 9 10:16:11 PDT 2025


================
@@ -461,21 +617,31 @@ void llvm::delinearize(ScalarEvolution &SE, const SCEV *Expr,
                        SmallVectorImpl<const SCEV *> &Subscripts,
                        SmallVectorImpl<const SCEV *> &Sizes,
                        const SCEV *ElementSize) {
-  // First step: collect parametric terms.
+  // Try array_info extraction.
+  if (delinearizeUsingArrayInfo(SE, Expr, Subscripts, Sizes, ElementSize))
+    return;
+  LLVM_DEBUG(dbgs() << "delinearize falling back to parametric method\n");
+
+  // Fall back to parametric delinearization.
+  const SCEVUnknown *BasePointer =
+      dyn_cast<SCEVUnknown>(SE.getPointerBase(Expr));
+  if (BasePointer)
----------------
alexey-bataev wrote:

```suggestion
  if (const auto *BasePointer =
      dyn_cast<SCEVUnknown>(SE.getPointerBase(Expr)))
```

https://github.com/llvm/llvm-project/pull/156342


More information about the llvm-commits mailing list