search for: scevaffinator

Displaying 19 results from an estimated 19 matches for "scevaffinator".

2011 Nov 01
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...libLLVM-3.1svn.dylib 0x0000000103fabf79 _ZL13SignalHandleri + 361 2 libsystem_c.dylib 0x00007fff94c8acfa _sigtramp + 26 3 libLLVM-3.1svn.dylib 0x0000000103526810 llvm::SmallVectorTemplateCommon<llvm::SCEV const*>::operator[](unsigned int) + 128 4 LLVMPolly.dylib 0x0000000106867af8 SCEVAffinator::getLoopDepth(llvm::Loop const*) + 72 5 LLVMPolly.dylib 0x00000001068676c7 SCEVAffinator::visitAddRecExpr(llvm::SCEVAddRecExpr const*) + 247 6 LLVMPolly.dylib 0x000000010686710b llvm::SCEVVisitor<SCEVAffinator, isl_pw_aff*>::visit(llvm::SCEV const*) + 283 7 LLVMPolly.dylib 0...
2011 Oct 27
2
[LLVMdev] How to make Polly ignore some non-affine memory accesses
Perfect, thank you very much :) 2011/10/26 Tobias Grosser <tobias at grosser.es>: > On 10/24/2011 11:32 PM, Marcello Maggioni wrote: >> >> Strange , with --enable-shared (I use auto tool by the way ...) it gives: >> >> MacBook-Pro-di-Marcello:examples Kariddi$ ./compile_ex.sh >> not_so_simple_loop >> clang (LLVM option parsing): Unknown command line
2011 Nov 02
5
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...0103fabf79 _ZL13SignalHandleri + 361 > 2  libsystem_c.dylib    0x00007fff94c8acfa _sigtramp + 26 > 3  libLLVM-3.1svn.dylib 0x0000000103526810 > llvm::SmallVectorTemplateCommon<llvm::SCEV > const*>::operator[](unsigned int) + 128 > 4  LLVMPolly.dylib      0x0000000106867af8 > SCEVAffinator::getLoopDepth(llvm::Loop const*) + 72 > 5  LLVMPolly.dylib      0x00000001068676c7 > SCEVAffinator::visitAddRecExpr(llvm::SCEVAddRecExpr const*) + 247 > 6  LLVMPolly.dylib      0x000000010686710b > llvm::SCEVVisitor<SCEVAffinator, isl_pw_aff*>::visit(llvm::SCEV > const*) + 283...
2011 Nov 19
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...======================================================= > --- lib/Analysis/ScopInfo.cpp (revision 144978) > +++ lib/Analysis/ScopInfo.cpp (working copy) > @@ -311,29 +311,38 @@ > Type = Access.isRead() ? Read : Write; > statement = Statement; > > - isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement, Access.getOffset()); > BaseAddr = Access.getBase(); > > - setBaseName(); > + if (Access.isAffine()) { > > - // Devide the access function by the size of the elements in the array. > - // > - // A stride one array access in C expressed as A[i] is...
2012 May 04
0
[LLVMdev] Extending GetElementPointer, or Premature Linearization Considered Harmful
...ze the sub-expressions in SCEV in form of what you want. To construct the linear expressions, you need to visit and analyze all sub-expressions in the SCEV, instead of simply looking at the top-level SCEV. Maybe you could have a look at the SCEVValidator[1], which check if a SCEV is affine, and and SCEVAffinator[2], which build a kind of affine expression from SCEV, all of them need to visit and analyze all sub-expressions in the SCEV. best regards ether [1]http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/SCEVValidator.cpp?view=markup [2]http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Anal...
2011 Nov 14
1
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...- ./lib/Analysis/ScopInfo.cpp 2011-11-13 02:38:06.000000000 +0100 > +++ ../llvm2/tools/polly/./lib/Analysis/ScopInfo.cpp 2011-11-13 02:36:12.000000000 +0100 > @@ -310,9 +310,13 @@ > Type = Access.isRead() ? Read : Write; > statement = Statement; > > - isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement, Access.getOffset()); > BaseAddr = Access.getBase(); > > + if (Access.isAffine()) > + { This should be if (Access.isAffine()) { > + > + isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement, Access.getOffset()); > + > setBaseName(); > &...
2011 Nov 18
5
[LLVMdev] How to make Polly ignore some non-affine memory accesses
2011/11/15 Marcello Maggioni <hayarms at gmail.com>: > 2011/11/14 Tobias Grosser <tobias at grosser.es>: >> On 11/14/2011 02:45 PM, Marcello Maggioni wrote: >>> >>> 2011/11/14 Tobias Grosser<tobias at grosser.es>: >>>> >>>> On 11/14/2011 01:24 AM, Marcello Maggioni wrote: >>>>> >>>>> Hi Tobias.
2011 Nov 20
2
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...========================= >> --- lib/Analysis/ScopInfo.cpp   (revision 144978) >> +++ lib/Analysis/ScopInfo.cpp   (working copy) >> @@ -311,29 +311,38 @@ >>    Type = Access.isRead() ? Read : Write; >>    statement = Statement; >> >> -  isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement, >> Access.getOffset()); >>    BaseAddr = Access.getBase(); >> >> -  setBaseName(); >> +  if (Access.isAffine()) { >> >> -  // Devide the access function by the size of the elements in the array. >> -  // >> -  // A stride on...
2012 May 04
3
[LLVMdev] Extending GetElementPointer, or Premature Linearization Considered Harmful
Is there any chance of replacing/extending the GEP instruction? As noted in the GEP FAQ, GEPs don't support variable-length arrays; when the front ends have to support VLAs, they linearize the subscript expressions, throwing away information. The FAQ suggests that folks interested in writing an analysis that understands array indices (I'm thinking of dependence analysis) should be
2013 Jul 26
0
[LLVMdev] [Polly] Analysis of the expensive compile-time overhead of Polly Dependence pass
..., but in this case I don't think we need to look into them. The above fix should give us good performance and additionally also increases the precision of the result (as isl now understands the relation between the different parameters). To fix this, you probably would like to look into the SCEVAffinator class and the way parameters are handled. Cheers, Tobias
2011 Nov 14
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...-11-13 02:38:06.000000000 +0100 >> +++ ../llvm2/tools/polly/./lib/Analysis/ScopInfo.cpp    2011-11-13 >> 02:36:12.000000000 +0100 >> @@ -310,9 +310,13 @@ >>    Type = Access.isRead() ? Read : Write; >>    statement = Statement; >> >> -  isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement, >> Access.getOffset()); >>    BaseAddr = Access.getBase(); >> >> +  if (Access.isAffine()) >> +  { > > This should be > > if (Access.isAffine()) { > > >> + >> +  isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement,...
2013 Jul 26
0
[LLVMdev] [Polly] Analysis of the expensive compile-time overhead of Polly Dependence pass
...don't think we need to look into them. The above fix should give us >good performance and additionally also increases the precision of the >result (as isl now understands the relation between the different >parameters). > >To fix this, you probably would like to look into the SCEVAffinator >class and the way parameters are handled. > Thank you so much. Maybe I was in the wrong direction at first -:) Yes, you are right. I should first investigate why Polly introduces three parameters rather than just one parameter. Best wishes, Star Tan -------------- next part --------------...
2013 Jul 26
6
[LLVMdev] [Polly] Analysis of the expensive compile-time overhead of Polly Dependence pass
Hi Sebastian, Recently, I found the "Polly - Calculate dependences" pass would lead to significant compile-time overhead when compiling some loop-intensive source code. Tobias told me you found similar problem as follows: http://llvm.org/bugs/show_bug.cgi?id=14240 My evaluation shows that "Polly - Calculate dependences" pass consumes 96.4% of total compile-time overhead
2011 Nov 21
0
[LLVMdev] How to get ELF section virtual starting address from MCSymbolRefExpr?
...========================= >> --- lib/Analysis/ScopInfo.cpp ? (revision 144978) >> +++ lib/Analysis/ScopInfo.cpp ? (working copy) >> @@ -311,29 +311,38 @@ >> ? ?Type = Access.isRead() ? Read : Write; >> ? ?statement = Statement; >> >> - ?isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement, >> Access.getOffset()); >> ? ?BaseAddr = Access.getBase(); >> >> - ?setBaseName(); >> + ?if (Access.isAffine()) { >> >> - ?// Devide the access function by the size of the elements in the array. >> - ?// >> - ?// A stride on...
2017 Sep 20
0
[RFC] Polly Status and Integration
...nd on isl as a back-end, they never directly use it. Instead there is a C++ interface in-between that encapsulates the features needed. Once our use cases are clear we can re-implement this interface. ** For comparison, the value analysis covers parts of the ScopDetection, all of SCEVValidator and SCEVAffinator as well as parts of ScopInfo and ScopBuilder in Polly. *** The memory analysis is concerned with the construction and functionality Polly implements in the MemoryAccess class. **** The dependence analysis is similar to Polly's DependenceInfo class but is supposed to allow more fine-grained cont...
2017 Sep 22
2
[RFC] Polly Status and Integration
...never > directly use it. Instead there is a C++ interface in-between that > encapsulates the features needed. Once our use cases are clear we can > re-implement this interface. > > ** For comparison, the value analysis covers parts of the ScopDetection, > all of SCEVValidator and SCEVAffinator as well as parts of ScopInfo and > ScopBuilder in Polly. > *** The memory analysis is concerned with the construction and > functionality Polly implements in the MemoryAccess class. > **** The dependence analysis is similar to Polly's DependenceInfo class > but is supposed to all...
2017 Sep 20
0
[RFC] Polly Status and Integration
...as a back-end, they never directly use it. Instead there is a C++ interface in-between that encapsulates the features needed. Once our use cases are clear we can re-implement this interface. > > ** For comparison, the value analysis covers parts of the ScopDetection, all of SCEVValidator and SCEVAffinator as well as parts of ScopInfo and ScopBuilder in Polly. > *** The memory analysis is concerned with the construction and functionality Polly implements in the MemoryAccess class. > **** The dependence analysis is similar to Polly's DependenceInfo class but is supposed to allow more fine-gr...
2017 Sep 25
0
[RFC] Polly Status and Integration
...use it. Instead there is a C++ interface in-between that > >encapsulates the features needed. Once our use cases are clear we can > >re-implement this interface. > > > >** For comparison, the value analysis covers parts of the ScopDetection, > >all of SCEVValidator and SCEVAffinator as well as parts of ScopInfo and > >ScopBuilder in Polly. > >*** The memory analysis is concerned with the construction and > >functionality Polly implements in the MemoryAccess class. > >**** The dependence analysis is similar to Polly's DependenceInfo class > >bu...
2017 Sep 01
10
[RFC] Polly Status and Integration
** *Hi everyone,As you may know, stock LLVM does not provide the kind of advanced loop transformations necessary to provide good performance on many applications. LLVM's Polly project provides many of the required capabilities, including loop transformations such as fission, fusion, skewing, blocking/tiling, and interchange, all powered by state-of-the-art dependence analysis. Polly also