[PATCH] D63304: Ignore Singletons in statement domains

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 26 14:44:29 PDT 2019


Meinersbur added inline comments.


================
Comment at: lib/Analysis/ScopInfo.cpp:3013
+      }
+      UpperBoundParams = UpperBoundParams.unite(BSet.lexmax().params());
+    }
----------------
Meinersbur wrote:
> [serious] I am quite sure that this method removing the single-iteration-domain is not reliable. Examples include:
> ```
> for (int i = 0; i < -n; i+=1)
>   Stmt(i);
> ```
> ```
> if (unsigned i = 0; i < (n%8); i+=1)
>   Stmt(i);
> ```
> and combinations thereof. At least the first would do the exact opposite: Remove all contexts that have more than one iteration.
What I would try to do:
```
InvalidContext = InvalidContext.unite(BSet.params())
```
This might not directly solve the problem since the invalid context is not used for gisting the iterations space. So the alterntive is to collect the params `.params()` of all non-singleton basic_sets and intersect those with the `AssumedContext`.



CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63304/new/

https://reviews.llvm.org/D63304





More information about the llvm-commits mailing list