[llvm] [Delinearization] Add function for fixed size array without relying on GEP (PR #145050)

Sebastian Pop via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 2 07:29:39 PDT 2025


================
@@ -586,9 +764,21 @@ void printDelinearization(raw_ostream &O, Function *F, LoopInfo *LI,
       O << "AccessFunction: " << *AccessFn << "\n";
 
       SmallVector<const SCEV *, 3> Subscripts, Sizes;
+
+      auto IsDelinearizationFailed = [&]() {
+        return Subscripts.size() == 0 || Sizes.size() == 0 ||
+               Subscripts.size() != Sizes.size();
+      };
+
       delinearize(*SE, AccessFn, Subscripts, Sizes, SE->getElementSize(&Inst));
-      if (Subscripts.size() == 0 || Sizes.size() == 0 ||
-          Subscripts.size() != Sizes.size()) {
+      if (UseFixedSizeArrayHeuristic && IsDelinearizationFailed()) {
+        Subscripts.clear();
+        Sizes.clear();
+        delinearizeFixedSizeArray(*SE, AccessFn, Subscripts, Sizes,
----------------
sebpop wrote:

Why are you not enabling fixedSizeArray delinearization method on all other places?


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


More information about the llvm-commits mailing list