summaryrefslogtreecommitdiffstats
path: root/polly/lib/Analysis/TempScopInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove MayAliasSet classTobias Grosser2014-02-111-4/+0
| | | | | | | The MayAliasSet class is currently not used and just confuses people. We can reintroduce it in case need a more precise tracking of alias sets. llvm-svn: 201191
* Adapt to DomTree changes in r199104Tobias Grosser2014-01-131-3/+3
| | | | llvm-svn: 199157
* Remove IR/Writer.hTobias Grosser2014-01-091-1/+0
| | | | | | This should fix the buildbots. llvm-svn: 198859
* Update #include paths for r198688 in LLVM that moved headers in the AssemblyChandler Carruth2014-01-071-1/+1
| | | | | | directory to their proper homes. llvm-svn: 198691
* TempScopInfo: Microoptimize constant conditionsTobias Grosser2013-09-101-4/+5
| | | | | | | | | Use 0 >= 1 instead of 0 != 0 to represent 'false'. This might be slightly more efficient as isl may create a union of sets for 0 != 0, whereas this is never needed for the expression 0 >= 1. Contributed-by: Alexandre Isoard <alexandre.isoard@gmail.com> llvm-svn: 190384
* ScopInfo: Correctly handle true/false conditionsTobias Grosser2013-09-071-4/+3
| | | | | | | This is a modified version of the orignally contributed patch. Contributed-by: alexandre.isoard@gmail.com llvm-svn: 190237
* Ensure a correct order between memory accesses.Hongbin Zheng2013-07-161-10/+9
| | | | | | | | Ensure that the scalar write access corresponds to the result of a load instruction appears after the generic read access corresponds to the load instruction. llvm-svn: 186419
* clang-format latest changesTobias Grosser2013-07-021-7/+8
| | | | llvm-svn: 185440
* TempScop: (Partial) Implement the printDetail function.Hongbin Zheng2013-06-291-2/+31
| | | | llvm-svn: 185254
* Minor change: No need to specify the namespace of raw_ostream.Hongbin Zheng2013-06-291-1/+1
| | | | llvm-svn: 185252
* Integrate latest clang-format changesTobias Grosser2013-06-231-6/+7
| | | | llvm-svn: 184655
* TempScopInfo: Add code to build the scalar dependences.Hongbin Zheng2013-06-101-0/+55
| | | | llvm-svn: 183653
* Refactor: Move the IRAccess building code to a new function.Hongbin Zheng2013-06-101-30/+29
| | | | llvm-svn: 183635
* Sort includesTobias Grosser2013-05-071-7/+5
| | | | llvm-svn: 181297
* Reformat with clang-formatTobias Grosser2013-05-071-3/+3
| | | | | | | clang-format become way more stable. This time we mainly reformat function signatures. llvm-svn: 181294
* Update formatting to latest version of clang-formatTobias Grosser2013-04-101-3/+3
| | | | llvm-svn: 179160
* scop detection: properly instantiate SCEVs to the place where they are usedSebastian Pop2013-04-101-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix inspired from c2d4a0627e95c34a819b9d4ffb4db62daa78dade. Given the following code for (i = 0; i < 10; i++) { ; } S: A[i] = 0 When translate the data reference A[i] in statement S using scev, we need to retrieve the scev of 'i' at the location of 'S'. If we do not do this the scev that we obtain will be expressed as {0,+,1}_for and will reference loop iterators that do not surround 'S'. What we really want is the scev to be instantiated to the value of 'i' after the loop. This value is {10}. This used to crash in: int loopDimension = getLoopDepth(Expr->getLoop()); isl_aff *LAff = isl_aff_set_coefficient_si( isl_aff_zero_on_domain(LocalSpace), isl_dim_in, loopDimension, 1); (gdb) p Expr->dump() {8,+,8}<nw><%do.body> (gdb) p getLoopDepth(Expr->getLoop()) $5 = 0 isl_space *Space = isl_space_set_alloc(Ctx, 0, NbLoopSpaces); isl_local_space *LocalSpace = isl_local_space_from_space(Space); As we are trying to create a memory access in a stmt that is outside all loops, LocalSpace has 0 dimensions: (gdb) p NbLoopSpaces $12 = 0 (gdb) p Statement.BB->dump() if.then: ; preds = %do.end %0 = load float* %add.ptr, align 4 store float %0, float* %q.1.reg2mem, align 4 br label %if.end.single_exit and so the scev for %add.ptr should be taken at the place where it is used, i.e., it should be the value on the last iteration of the do.body loop, and not "{8,+,8}<nw><%do.body>". llvm-svn: 179148
* clang-format: Many more filesTobias Grosser2013-03-231-17/+15
| | | | | | | | | | | | | After this commit, polly is clang-format clean. This can be tested with 'ninja polly-check-format'. Updates to clang-format may change this, but the differences will hopefully be both small and general improvements to the formatting. We currently have some not very nice formatting for a couple of items, DEBUG() stmts for example. I believe the benefit of being clang-format clean outweights the not perfect layout of this code. llvm-svn: 177796
* TempScopInfo: clang-formatTobias Grosser2013-02-051-21/+19
| | | | llvm-svn: 174368
* Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate toChandler Carruth2013-01-021-1/+1
| | | | | | reflect the migration in r171366. llvm-svn: 171370
* Fix obvious formatting problems.Tobias Grosser2012-12-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | We fix the following formatting problems found by clang-format: - 80 cols violations - Obvious problems with missing or too many spaces - multiple new lines in a row clang-format suggests many more changes, most of them falling in the following two categories: 1) clang-format does not at all format a piece of code nicely 2) The style that clang-format suggests does not match the style used in Polly/LLVM I consider differences caused by reason 1) bugs, which should be fixed by improving clang-format. Differences due to 2) need to be investigated closer to understand the cause of the difference and the solution that should be taken. llvm-svn: 171241
* Make polly -Wdocumentation cleanTobias Grosser2012-11-191-6/+4
| | | | llvm-svn: 168311
* Move TargetData to DataLayout to fix build breakage caused by LLVM r16540Micah Villmow2012-10-081-3/+3
| | | | llvm-svn: 165408
* Rename TargetData -> DataLayoutTobias Grosser2012-10-081-1/+1
| | | | | | Contributed by: Sameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com> llvm-svn: 165387
* fix typoSebastian Pop2012-05-041-1/+1
| | | | llvm-svn: 156210
* Update Polly to match the LLVM interface change in r156196.Chandler Carruth2012-05-041-4/+3
| | | | llvm-svn: 156203
* Support non-affine access functions in Polly.Tobias Grosser2011-12-201-2/+6
| | | | | | | | | | In case we can not analyze an access function, we do not discard the SCoP, but assume conservatively that all memory accesses that can be derived from our base pointer may be accessed. Patch provided by: Marcello Maggioni <hayarms@gmail.com> llvm-svn: 146972
* Reuse the old BaseAddress checking in SCEVValidator to make sure that no baseTobias Grosser2011-11-101-1/+3
| | | | | | | address is part of the access function. Also remove unused special cases that were necessery when the base address was still contained in the access function llvm-svn: 144280
* Use getBasePtr in TempScop/ScopInfoTobias Grosser2011-11-101-1/+8
| | | | llvm-svn: 144279
* Remove unused parameters from TempScopTobias Grosser2011-11-091-10/+4
| | | | llvm-svn: 144232
* TempScop: Rename SCEVAffFunc to IRAccessTobias Grosser2011-11-091-5/+5
| | | | | | | The SCEVAffFunc is now only used to express memory accesses. Give it a proper name and rework the class such that this is obvious. llvm-svn: 144231
* Remove AffineSCEVIteratorTobias Grosser2011-11-091-1/+2
| | | | | | | We do not use it anymore. It was replaced by SCEVVisitors like the SCEVValidator. llvm-svn: 144229
* Remove more unused stuff from SCEVAffFuncTobias Grosser2011-11-091-7/+0
| | | | llvm-svn: 144227
* Remove SCEVAffFunc from polly::ComparisonTobias Grosser2011-11-091-14/+6
| | | | llvm-svn: 144226
* Remove unused code from SCEVAffFunc constructorTobias Grosser2011-11-091-43/+0
| | | | llvm-svn: 144224
* Remove more of SCEVAffineFuncTobias Grosser2011-11-091-96/+0
| | | | llvm-svn: 144223
* TempScop: Remove more of the buildAffineFunctionTobias Grosser2011-11-091-11/+1
| | | | llvm-svn: 144221
* TempScopInfo: Remove unneeded construction of SCEVAffFuncTobias Grosser2011-11-091-7/+0
| | | | llvm-svn: 144220
* Detect Parameters directly on the SCEV.Tobias Grosser2011-11-081-0/+1
| | | | | | | | | | Instead of using TempScop to find parameters, we detect them directly on the SCEV. This allows us to remove the TempScop parameter detection in a subsequent commit. This fixes a bug reported by Marcello Maggioni <hayarms@gmail.com> llvm-svn: 144087
* TempScop: Remove has_signed (was unused)Tobias Grosser2011-11-031-1/+1
| | | | llvm-svn: 143651
* TempScop: Remove SCEVAffFunc from LoopBoundInfoTobias Grosser2011-11-021-4/+9
| | | | | | This is not needed anymore -> Reduce impact of SCEVAffFunc. llvm-svn: 143575
* TempScopInfo: Print the original SCEV instead of using SCEVAffFuncTobias Grosser2011-11-021-1/+1
| | | | | | This is reducing the impact of SCEVAffFunc llvm-svn: 143574
* Initialize the passes early and properly.Tobias Grosser2011-10-081-2/+13
| | | | llvm-svn: 141455
* Add some forgotten passes to LinkAllPassesTobias Grosser2011-08-231-0/+3
| | | | llvm-svn: 138400
* Temporarily remove reduction support and interchange passTobias Grosser2011-08-211-68/+1
| | | | | | | | | | | I am planning to eliminate the TempScopInfo pass. To simplify this I remove some features that may later be added to the ScopInfo pass. The interchange pass is currently strongly tested and furthermore ment to be replaced by the general scheduling optimizer. Reductions itself can later be added easily. llvm-svn: 138219
* TempSCoP: Store SCEV a SCEVAffFunc was derived fromTobias Grosser2011-08-181-5/+8
| | | | llvm-svn: 137928
* TempScopInfo: Improve formatiingTobias Grosser2011-08-181-10/+13
| | | | llvm-svn: 137927
* Add initial version of PollyTobias Grosser2011-04-291-0/+523
This version is equivalent to commit ba26ebece8f5be84e9bd6315611d412af797147e in the old git repository. llvm-svn: 130476
OpenPOWER on IntegriCloud