[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