[polly] r298053 - [ScopInfo] Do not expand getDomains() to full parameter space.

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 17 09:17:26 PDT 2017


On Fri, Mar 17, 2017, at 04:36 PM, Michael Kruse via llvm-commits wrote:
> This (or r298054) seem to have broken a buildbot:
> 
> http://lab.llvm.org:8011/builders/perf-x86_64-penryn-O3-polly-parallel-fast/builds/3607
> 
> There is also an advantage in keeping all parameters spaces equal.
> Most isl_*_align operations first check whether parameter spaces are
> equal and do nothing if it is. Have you done speed comparisons to
> justify this change?

I will have a look. Together with some other changes, this changes
compile time of one of the kernels I look at from long (>= 10 minutes)
to around 10 seconds. I will post exact numbers when all changes are in.
Let me first fix the bug, then I will get back to you and describe it a
little bit more. I can put these patches also on phabricator. Then we
can gather some feedback.

Best,
Tobias

> 
> Michael
> 
> 
> 
> 2017-03-17 10:02 GMT+01:00 Tobias Grosser via llvm-commits
> <llvm-commits at lists.llvm.org>:
> > Author: grosser
> > Date: Fri Mar 17 04:02:50 2017
> > New Revision: 298053
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=298053&view=rev
> > Log:
> > [ScopInfo] Do not expand getDomains() to full parameter space.
> >
> > Since several years, isl can perform most operations on sets with differing
> > parameter spaces, by expanding the parameter space on demand relying using
> > named isl ids to distinguish different parameter dimensions.
> >
> > By not always expanding to full dimensionality the set remain smaller and can
> > likely be operated on faster. This change by itself did not yet result in
> > measurable performance benefits, but it is a step into the right direction
> > needed to ensure that subsequent changes indeed can work with lower-dimensional
> > sets and these sets do not get blown up by accident when later intersected with
> > the domain context.
> >
> > Modified:
> >     polly/trunk/lib/Analysis/ScopInfo.cpp
> >
> > Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
> > URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=298053&r1=298052&r2=298053&view=diff
> > ==============================================================================
> > --- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
> > +++ polly/trunk/lib/Analysis/ScopInfo.cpp Fri Mar 17 04:02:50 2017
> > @@ -4234,7 +4234,8 @@ __isl_give PWACtx Scop::getPwAff(const S
> >  }
> >
> >  __isl_give isl_union_set *Scop::getDomains() const {
> > -  isl_union_set *Domain = isl_union_set_empty(getParamSpace());
> > +  isl_space *EmptySpace = isl_space_params_alloc(getIslCtx(), 0);
> > +  isl_union_set *Domain = isl_union_set_empty(EmptySpace);
> >
> >    for (const ScopStmt &Stmt : *this)
> >      Domain = isl_union_set_add_set(Domain, Stmt.getDomain());
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list