[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