[PATCH] D63304: Ignore Singletons in statement domains

Sameer AbuAsal via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 14 14:58:49 PDT 2019


sabuasal marked an inline comment as done.
sabuasal added inline comments.


================
Comment at: lib/Analysis/ScopInfo.cpp:2183-2184
+  if (HandleDoWhile && !S.getRestrictDomainParams().plain_is_universe())
+    AssumptionContext =
+        AssumptionContext.intersect(S.getRestrictDomainParams());
   return AssumptionContext;
----------------
Meinersbur wrote:
> [serious] `simplifyAssumptionContext` should not logically modify the `AssumptionContext`. The intersection should have happened earlier.
Actually, this has to be done after simplification.  The AssumptionContext is simplified (gisted-ed) with the domain parameters as you can see in line 2178.  If you look at line 3025 you'll see that we also gist the domain parameters with the RestrictDomainParameters we are building.  this can result in a situation where the parameters restriction we add can be completely removed from both the assumption, and hence the runtime check, and the materialized domain. 

the reason it is important to gist the domain parameters is that it we'd rather push all the complex params to the RTC and keep the materialized statement as simple as possible. 

Can you suggest a better place for the intersection that insures our restriction params are always present in the AssumptionContext?  I think intersectBBDomainParams() might  work?





Repository:
  rPLO Polly

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

https://reviews.llvm.org/D63304





More information about the llvm-commits mailing list