[PATCH] D45066: [Polly] [ScopInfo] Remove bail out condition in buildMinMaxAccess()
Michael Kruse via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 12 11:53:44 PDT 2018
Meinersbur added a subscriber: grosser.
Meinersbur added inline comments.
================
Comment at: lib/Analysis/ScopInfo.cpp:2308
+
+ if (isl_set_n_basic_set(simple_set.get()) >= MaxDisjunctsInDomain)
+ simple_set = simple_set.simple_hull();
----------------
cs15btech11044 wrote:
> Meinersbur wrote:
> > Consider using `RunTimeChecksMaxAccessDisjuncts` which the current trunk uses.
> I do not quite understand why `RunTimeChecksMaxAccessDisjuncts` needs to be used here.
>
> If I remember correctly, the point of this patch was to remove max-disjuncts bailout in `MinMaxAccess` so that the computation limit will decide whether the memory access needs to be considered or not.
> Then why is it being reintroduced here?
The idea was to remove a reason for a bail-out to happen (which occurred in a hot loop in a SPEC benchmark), if we can avoid it. Part of the reason it triggered was that the code does not coalesce() after remove_divs(). Instead of bailing-out we can apply a rougher approximation than remove_divs(): simple_hull() in this case.
> remove max-disjuncts bailout in MinMaxAccess so that the computation limit will decide whether the memory access needs to be considered or not.
This was my idea for it, but according to @grosser we should avoid the additional computation time in `lexmin_pw_multi_aff()` to wait for the computation limit to trigger when currently we have a bail-out before that computational overhead.
How would you handle the situation?
Repository:
rPLO Polly
https://reviews.llvm.org/D45066
More information about the llvm-commits
mailing list