summaryrefslogtreecommitdiffstats
path: root/polly/lib/Exchange
Commit message (Collapse)AuthorAgeFilesLines
...
* Sort include directivesTobias Grosser2015-05-091-8/+4
| | | | | | | | | | Upcoming revisions of isl require us to include header files explicitly, which have previously been already transitively included. Before we add them, we sort the existing includes. Thanks to Chandler for sort_includes.py. A simple, but very convenient script. llvm-svn: 236930
* Adding debug location information to Polly's JSCOP and dot exportsTobias Grosser2015-05-031-0/+11
| | | | | | | | | | | | | | | | | | | | This change adds location information for the detected regions in Polly when the required debug information is available. The JSCOP output format is extended with a "location" field which contains the information in the format "source.c:start-end" The dot output is extended to contain the location information for each nested region in the analyzed function. As part of this change, the existing getDebugLocation function has been moved into lib/Support/ScopLocation.cpp to avoid having to include polly/ScopDetectionDiagnostics.h. Differential Revision: http://reviews.llvm.org/D9431 Contributed-by: Roal Jordans <r.jordans@tue.nl> llvm-svn: 236393
* JScoP Import/Export: Ensure parameters have the same isl_idTobias Grosser2015-04-231-0/+4
| | | | | | | | | | | When reading parameters from a JSON file parameters with identical names may be related to different isl_ids, which then causes isl to treat them as differnet objects. This does not cause issues at the moment, but has shown problematic in subsequent schedule tree changes. This commit will be tested by the following changes. llvm-svn: 235588
* Rename 'scattering' to 'schedule'Tobias Grosser2015-04-211-10/+10
| | | | | | | | | | | | | | | | In Polly we used both the term 'scattering' and the term 'schedule' to describe the execution order of a statement without actually distinguishing between them. We now uniformly use the term 'schedule' for the execution order. This corresponds to the terminology of isl. History: CLooG introduced the term scattering as the generated code can be used as a sequential execution order (schedule) or as a parallel dimension enumerating different threads of execution (placement). In Polly and/or isl the term placement was never used, but we uniformly refer to an execution order as a schedule and only later introduce parallelism. When doing so we do not talk about about specific placement dimensions. llvm-svn: 235380
* Fix stupid memory leakTobias Grosser2015-03-261-1/+1
| | | | llvm-svn: 233326
* Fix compilation after 'Make DataLayout Non-Optional in the Module' commitTobias Grosser2015-03-051-3/+3
| | | | llvm-svn: 231362
* Create a dependence struct to hold dependence information for a SCoP.Johannes Doerfert2015-03-051-3/+3
| | | | | | | | | | | The new Dependences struct in the DependenceInfo holds all information that was formerly part of the DependenceInfo. It also provides the same interface for the user to access this information. This is another step to a more general ScopPass interface that does allow multiple SCoPs to be "in flight". llvm-svn: 231327
* Rename the Dependences pass to DependenceInfo [NFC]Johannes Doerfert2015-03-041-6/+6
| | | | | | | | | | We rename the Dependences pass to DependenceInfo as a first step to a caching pass policy. The new DependenceInfo pass will later provide "Dependences" for a SCoP. To keep consistency the test folder is renamed too. llvm-svn: 231308
* [Refactor] Include explicitly what is usedJohannes Doerfert2015-03-011-0/+2
| | | | llvm-svn: 230902
* [Refactor] Remove Scop * member to simplify JSON classJohannes Doerfert2015-03-011-30/+26
| | | | llvm-svn: 230900
* [Refactor] Add a Scop & as argument to printScopJohannes Doerfert2015-03-011-5/+5
| | | | | | This is the first step in the interface simplification. llvm-svn: 230897
* [Refactor][NfC] Simplify and clean the handling of (new) access relationsJohannes Doerfert2014-10-131-1/+1
| | | | | | | | | | | | | | | This patch does not change the semantic on it's own. However, the dependence analysis as well as dce will now use the newest available access relation for each memory access, thus if at some point the json importer or any other pass will run before those two and set a new access relation the behaviour will be different. In general it is unclear if the dependence analysis and dce should be run on the old or new access functions anyway. If we need to access the original access function from the outside later, we can expose the getter again. Differential Revision: http://reviews.llvm.org/D5707 llvm-svn: 219612
* Relax the condition on the jsop accesses regarding the alignment.Johannes Doerfert2014-10-101-12/+30
| | | | | | | | | | | We restricted the new access functions to be a subset of the old one because we want to keep the alignment, however if the alignment is "not special", thus the default for the type, we can allow any access. Differential Revision: http://reviews.llvm.org/D5680 llvm-svn: 219503
* Introduce the ScopArrayInfo class.Johannes Doerfert2014-10-051-0/+3
| | | | | | | | | | | | | | | | | | | This class allows to store information about the arrays in the SCoP. For each base pointer in the SCoP one object is created storing the type and dimension sizes of the array. The objects can be obtained via the SCoP, a MemoryAccess or the isl_id associated with the output dimension of a MemoryAccess (the description of what is accessed). So far we use the information in the IslExprBuilder to create the right base type before indexing into the base array. This fixes the bug http://llvm.org/bugs/show_bug.cgi?id=21113 (both test cases are included). On top of that we can now build runtime alias checks for delinearized arrays as the dimension sizes are also part of the ScopArrayInfo objects. Differential Revision: http://reviews.llvm.org/D5613 llvm-svn: 219077
* Align copied load/store instructions as the original.Johannes Doerfert2014-10-021-0/+15
| | | | | | | | | | This also forbids the json importer to access other memory locations than the original instruction as we to reuse the alignment of the original load/store. Differential Revision: http://reviews.llvm.org/D5560 llvm-svn: 218883
* Update for LLVM api changeRafael Espindola2014-08-251-3/+3
| | | | llvm-svn: 216394
* [Polly] Remove the PoCC and ScopLib supportJohannes Doerfert2014-08-133-976/+0
| | | | | | | | | Remove the PoCC and ScopLib support from Polly as we do not have a user/maintainer for it. Differential Revision: http://reviews.llvm.org/D4871 llvm-svn: 215563
* clang-format polly to avoid buildbot noiseTobias Grosser2014-07-093-24/+24
| | | | llvm-svn: 212609
* Update for llvm api change.Rafael Espindola2014-07-061-3/+4
| | | | llvm-svn: 212412
* Fix buildJohannes Doerfert2014-06-191-11/+7
| | | | | | See r210927 and r210847 llvm-svn: 211278
* [Refactor] C++11 Memory access iterators in SCoP stmtsJohannes Doerfert2014-06-131-10/+6
| | | | | | | | | + Added const iterator version + Changed name to begin/end to allow range loops + Changed call sites to range loops + Changed typename to (const_)iterator llvm-svn: 210927
* Fix the polly build.Rafael Espindola2014-06-121-1/+1
| | | | llvm-svn: 210847
* Try to fix the polly build.Rafael Espindola2014-06-121-1/+1
| | | | llvm-svn: 210811
* polly: update for LLVM API changeSaleem Abdulrasool2014-05-191-2/+2
| | | | | | | SVN r209103 removed the OwningPtr variant of the MemoryBuffer APIs. Switch to the equivalent std::unique_ptr versions. This should clear up the build bots. llvm-svn: 209104
* Add missing include.Benjamin Kramer2014-04-301-0/+1
| | | | llvm-svn: 207618
* [Modules] Fix potential ODR violations by sinking the DEBUG_TYPEChandler Carruth2014-04-221-2/+2
| | | | | | | | | | definition below all of the header #include lines, Polly edition. If you want to know more details about this, you can see the recent commits to Debug.h in LLVM. This is just the Polly segment of a cleanup I'm doing globally for this macro. llvm-svn: 206852
* [C++11] Use nullptrTobias Grosser2014-04-161-13/+13
| | | | llvm-svn: 206361
* Remove OpenScopTobias Grosser2014-04-113-829/+13
| | | | | | | | | We only supported a very old version of OpenScop that was entirely different to what OpenScop is today. To not confuse people, we remove this old and unusable support. If anyone is interested to add OpenScop support back in, the relevant patches are available in version control. llvm-svn: 206026
* clang-format: Remove empty linesTobias Grosser2014-03-213-8/+0
| | | | llvm-svn: 204468
* (Make) Remove unused MakefilesAndreas Simbuerger2014-03-141-16/+0
| | | | llvm-svn: 203957
* Ported scoplib to use isl_val * instead of isl_intTobias Grosser2014-03-101-68/+89
| | | | | | | | | | | | | 1) The isl_int -> isl_val changes are the ones Tobias suggested. One additional isl_val_free is added (and needed) 2) Three scoplib_vector_free are added, maybe we would need even more (and matrix_free) but it's hard to place them right. 3) Cleaned the includes (and removed 'extern C') This fixes the broken compilation for the scoplib import and export. Contributed-by: Johannes Doerfert <doerfert@cs.uni-saarland.de> llvm-svn: 203500
* cmake: build monolithic libLLVMPollyLib.dylibTobias Grosser2014-03-031-20/+0
| | | | | | | | | | The module LLVMPolly.so links to that. There is really no reason to build a large number of mini-libraries here, especially as we do have dependences between the libraries that are not properly handled and that make linking fail on darwin. Submitted-by: David Fang <fang@csl.cornell.edu> llvm-svn: 202743
* Update for llvm api change.Rafael Espindola2014-02-241-1/+1
| | | | llvm-svn: 202056
* Update for llvm API change.Rafael Espindola2014-02-241-1/+1
| | | | llvm-svn: 202048
* llvm/IR/Writer.h has been removed in llvm commit r198836 and seems useless ↵Sylvestre Ledru2014-01-164-7/+0
| | | | | | in polly llvm-svn: 199360
* 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-076-6/+6
| | | | | | directory to their proper homes. llvm-svn: 198691
* prepend LLVM to all Polly* libsSebastian Pop2013-11-161-2/+2
| | | | llvm-svn: 194923
* JSONImporter: Free new schedule if found invalidTobias Grosser2013-07-291-0/+4
| | | | | | | | | In case we detect that the schedule the user wants to import is invalid we refuse it _and_ free the isl_maps containing it. Another bug found thanks to Rafael. llvm-svn: 187339
* Small style improvementsTobias Grosser2013-07-131-2/+2
| | | | llvm-svn: 186248
* Integrate latest clang-format changesTobias Grosser2013-06-235-17/+10
| | | | llvm-svn: 184655
* Sort includesTobias Grosser2013-05-072-6/+4
| | | | llvm-svn: 181297
* Move polly options into separate option categoryTobias Grosser2013-05-075-13/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | Use the new cl::OptionCategory support to move the Polly options into a separate option category. The aim is to hide most options and show by default only the options a user needs to influence '-O3 -polly'. The available options probably need some care, but here is the current status: Polly Options: Configure the polly loop optimizer -enable-polly-openmp - Generate OpenMP parallel code -polly - Enable the polly optimizer (only at -O3) -polly-no-tiling - Disable tiling in the scheduler -polly-only-func=<function-name> - Only run on a single function -polly-report - Print information about the activities of Polly -polly-vectorizer - Select the vectorization strategy =none - No Vectorization =polly - Polly internal vectorizer =unroll-only - Only grouped unroll the vectorize candidate loops =bb - The Basic Block vectorizer driven by Polly llvm-svn: 181295
* Reformat with clang-formatTobias Grosser2013-05-076-37/+43
| | | | | | | 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-103-7/+5
| | | | llvm-svn: 179160
* clang-format: Many more filesTobias Grosser2013-03-236-241/+213
| | | | | | | | | | | | | 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
* 'chmod -x' on files that do not need the executable bitsTobias Grosser2012-12-296-0/+0
| | | | llvm-svn: 171224
* ScopLib: Support negated access functions.Tobias Grosser2012-10-071-2/+3
| | | | | | | | | | | | | Scoplib only supports access functions, but not the more generic access relations. This commit now also supports access functions that where not directly expresses as A[sub] with sub = i + 5b, but with A[sub] with -sub = -i + (-5b). Test case to come. Contributed by: Dustin Feld <d3.feld@gmail.com> llvm-svn: 165379
* Pocc: Fix some bugs in the PoCC optimizer passTobias Grosser2012-08-301-1/+1
| | | | | | | | | | | | | This includes: - The isl_id of the domain of the scattering must be copied from the original domain - Remove outdated references to a 'FinalRead' statement - Print of the Pocc output, if -debug is provided. - Add line breaks to some error messages. Reported and Debugged by: Dustin Feld <d3.feld@gmail.com> llvm-svn: 162901
* Add missing dependency to cmake systemTobias Grosser2012-08-021-0/+2
| | | | llvm-svn: 161158
OpenPOWER on IntegriCloud