[polly] Bound ISL operations during DeLICM scalar collapsing (PR #203073)

Shikhar Jain via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 28 13:21:42 PDT 2026


================
@@ -1024,9 +1031,27 @@ class DeLICMImpl final : public ZoneAlgorithm {
     auto TargetAccRel = getAccessRelationFor(TargetStoreMA);
 
     // { Zone[] -> DomTarget[] }
-    // For each point in time, find the next target store instance.
-    auto Target =
-        computeScalarReachingOverwrite(Schedule, TargetDom, false, true);
+    // For each point in time, find the next target store instance. This can be
+    // expensive for SCoPs with many modular/quasi-affine constraints, so bound
+    // it with the shared ISL operations budget.
+    isl::map Target;
+    {
+      IslQuotaScope MaxOpScope = MaxOpGuard.enter();
+      Target = computeScalarReachingOverwrite(Schedule, TargetDom, false, true);
+
+      if (Target.is_null() || MaxOpScope.hasQuotaExceeded()) {
+        DeLICMOutOfQuota++;
----------------
ShikharJ-Corp wrote:

Done..

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


More information about the llvm-commits mailing list