summaryrefslogtreecommitdiffstats
path: root/polly
Commit message (Collapse)AuthorAgeFilesLines
* Remove leftover codeJohannes Doerfert2015-02-211-1/+1
| | | | llvm-svn: 230140
* Fix formattingTobias Grosser2015-02-192-4/+3
| | | | llvm-svn: 229920
* [REFACTOR] Simplify the SCoP detection interface a bitJohannes Doerfert2015-02-192-24/+11
| | | | llvm-svn: 229879
* [NFC] Generalize getIslCompatibleName interface.Johannes Doerfert2015-02-192-7/+18
| | | | llvm-svn: 229877
* Drop left over code from FinalRead statement removal.Tobias Grosser2015-02-191-4/+0
| | | | | | We removed FinalRead statements in r152319. llvm-svn: 229867
* Add missing comments to member variablesTobias Grosser2015-02-191-0/+3
| | | | | Reported-by: Johannes Doerfert llvm-svn: 229854
* ScopDetection: Only detect scops that have at least one read and one writeTobias Grosser2015-02-19341-454/+630
| | | | | | | | | | Scops that only read seem generally uninteresting and scops that only write are most likely initializations where there is also little to optimize. To not waste compile time we bail early. Differential Revision: http://reviews.llvm.org/D7735 llvm-svn: 229820
* Add missing files to autoconf buildTobias Grosser2015-02-171-0/+5
| | | | llvm-svn: 229479
* Update isl to 0ae2b02 "isl_seq_combine: optimize for common case"Tobias Grosser2015-02-171-0/+8
| | | | | | | | This is just a single commit that includes a performance optimization that should improve dependence analysis time. Our performance bots should measure this difference. llvm-svn: 229476
* Update to isl 99d53692baTobias Grosser2015-02-16104-2820/+14815
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit imports the latest isl version into lib/External/isl. The changes relavant for Polly are: 1) Schedule trees [1] have been introduced as a more structured way to describe schedules. Polly does not yet use them, but we may switch to them in the near future. 2) Another set of coalescing changes [2] simplifies some data dependences and removes a couple of code generation artifacts. We now understand that the following sets can be merged: { Stmt_S1[i0, i1] -> Stmt_S2[i0 + i1] : i0 >= 0 and i1 <= 1023 - i0 and i1 >= 1 Stmt_S1[i0, 0] -> Stmt_S2[i0] : i0 <= 1023 and i0 >= 1} into: { Stmt_S1[i0, i1] -> Stmt_S2[i0 + i1] : i1 <= 1023 - i0 and i1 >= 0 and i1 >= 1 - i0 and i0 >= 0 } Changes of this kind reduce unnecessary specialization during code generation. - for (int c3 = 0; c3 <= 1023; c3 += 1) { - if (c3 % 2 == 0) { - Stmt_for_body3(c1, c3); - } else - Stmt_for_body3(c1, c3); - } + for (int c3 = 0; c3 <= 1023; c3 += 1) + Stmt_for_body3(c1, c3); [1] http://impact.gforge.inria.fr/impact2014/papers/impact2014-verdoolaege.pdf [2] http://impact.gforge.inria.fr/impact2015/papers/impact2015-verdoolaege.pdf llvm-svn: 229423
* Fix formattingTobias Grosser2015-02-162-4/+2
| | | | llvm-svn: 229360
* Update Polly for the removal of LLVM_DELETED_FUNCTION now that '= delete' ↵David Blaikie2015-02-155-16/+16
| | | | | | works on all supported compilers (MSVC2012 compat has been dropped) llvm-svn: 229344
* www: update installation instructions to not include gmp/islTobias Grosser2015-02-151-1/+74
| | | | llvm-svn: 229305
* Remove isl/cloog build scriptsTobias Grosser2015-02-153-110/+0
| | | | | | isl is not distributed as part of Polly. llvm-svn: 229304
* www: Add code coverage and scan-build results againTobias Grosser2015-02-151-3/+0
| | | | | | | Sylvestre Ledru (re)enabled them after the import of isl into polly significantly simplified the build. llvm-svn: 229303
* Add getSize() to the SCoP class.Johannes Doerfert2015-02-141-0/+3
| | | | llvm-svn: 229254
* Do not try to optimize empty SCoPs.Johannes Doerfert2015-02-141-0/+8
| | | | llvm-svn: 229253
* Overaproximate divisions in for the alias checks.Johannes Doerfert2015-02-141-0/+2
| | | | | | | | Alias checks might become costly if there are divisions that complicate the description of the accessed locations. By overaproximating them we get fairly accurate results without the huge compile time cost. llvm-svn: 229252
* [PM] Convert Polly over to directly use the legacy pass managerChandler Carruth2015-02-135-10/+10
| | | | | | | | | namespace and header rather than the top-level header and using declarations. These helpers impede modular builds and are going away. Migrating away from them will also be necessary to start mixing in any usage of the new pass manager. llvm-svn: 229091
* Link LLVM libraries into libLLVMPolly if BUILD_SHARED_LIBS=ON is setTobias Grosser2015-02-121-1/+12
| | | | | | | | | | | | | | | | Without this change we get linker errors such as: undefined reference to `llvm::dbgs()' We only conditionally link in these libraries, as in BUILD_SHARED_LIBS=OFF mode, linking in these libraries causes such functions (and especially global options) to be defined twice. The "solution" I choose is most likely not ideal, but seems to work. If any cmake specialist can suggest a better approach, this would be appreciated. We also drop a .c file that is not needed as it caused linker errors as well. llvm-svn: 228914
* [FIX] Remove XFAIL againJohannes Doerfert2015-02-111-1/+0
| | | | llvm-svn: 228868
* [FIX] Correctly handle scalar dependences of branch instructionsJohannes Doerfert2015-02-112-2/+9
| | | | llvm-svn: 228866
* [FIX] Fix test case that was affected by the early exit patchJohannes Doerfert2015-02-111-3/+2
| | | | llvm-svn: 228865
* Drop an assert and XFAIL two test casesTobias Grosser2015-02-113-6/+2
| | | | | | | This gets the buildbot green to avoid further emails. Johannes will fix this later in the evening. llvm-svn: 228862
* Update TODO list.Johannes Doerfert2015-02-111-2/+2
| | | | llvm-svn: 228858
* Add early exits for SCoPs we did not optimizeJohannes Doerfert2015-02-1161-105/+196
| | | | | | | | | | | | | This allows us to skip ast and code generation if we did not optimize a SCoP and will not generate parallel or alias annotations. The initial heuristic to exit is simple but allows improvements later on. All failing test cases have been modified to disable early exit, thus to keep their coverage. Differential Revision: http://reviews.llvm.org/D7254 llvm-svn: 228851
* Model scalar writes with uses outside the SCoPJohannes Doerfert2015-02-112-8/+71
| | | | | | | | | | These write are important as they will force the scheduling and code generation of an otherwise trivial statement and also impose an order of execution needed to guarantee the correct final value for a scalar in a loop. Added test case modeled after ClamAV/clamscan. llvm-svn: 228847
* Allow signed devision in access functionsJohannes Doerfert2015-02-113-8/+110
| | | | llvm-svn: 228833
* [FIX] Special case for branch users of scalar valuesJohannes Doerfert2015-02-112-0/+48
| | | | llvm-svn: 228832
* isl is now distributed with pollyTobias Grosser2015-02-091-1/+1
| | | | llvm-svn: 228575
* [Refactor] Use the LoopInfo object already presentJohannes Doerfert2015-02-081-10/+4
| | | | llvm-svn: 228540
* [Refactor] Use only one BlockGenerator for a SCoPJohannes Doerfert2015-02-065-181/+186
| | | | | | | | | | | | | | | | This change has two main purposes: 1) We do not use a static interface to hide an object we create and destroy for every basic block we copy. 2) We allow the BlockGenerator to store information between calls to the copyBB method. This will ease scalar/phi code generation later on. While a lot of method signatures were changed this should not cause any real behaviour change. Differential Revision: http://reviews.llvm.org/D7467 llvm-svn: 228443
* Do not run independent blocks when we model all scalar dependencesJohannes Doerfert2015-02-062-2/+8
| | | | llvm-svn: 228441
* [Fix] Broken test caseJohannes Doerfert2015-02-061-2/+0
| | | | llvm-svn: 228439
* Model PHI nodes without demoting themJohannes Doerfert2015-02-0613-5/+519
| | | | | | | | | | This allows us to model PHI nodes in the polyhedral description without demoting them. The modeling however will result in the same accesses as the demotion would have introduced. Differential Revision: http://reviews.llvm.org/D7415 llvm-svn: 228433
* Build the isl files as PICTobias Grosser2015-02-041-0/+3
| | | | | | Otherwise we get linker errors. llvm-svn: 228204
* Import isl(+imath) as an external library into PollyTobias Grosser2015-02-041025-242/+177286
| | | | | | | | | | | | | | | | | | | | | | With this patch Polly is always GPL-free (no dependency on GMP any more). As a result, building and distributing Polly will be easier. Furthermore, there is no need to tightly coordinate isl and Polly releases anymore. We import isl b3e0fa7a05d as well as imath 4d707e5ef2. These are the git versions Polly currently was tested with when using utils/checkout_isl.sh. The imported libraries are both MIT-style licensed. We build isl and imath with -fvisibility=hidden to avoid clashes in case other projects (such as gcc) use conflicting versions of isl. The use of imath can temporarily reduce compile-time performance of Polly. We will work on performance tuning in tree. Patches to isl should be contributed first to the main isl repository and can then later be reimported to Polly. This patch is also a prerequisite for the upcoming isl C++ interface. llvm-svn: 228193
* Add test case for r227805Tobias Grosser2015-02-031-0/+29
| | | | llvm-svn: 227970
* [NFC] Fix typoJohannes Doerfert2015-02-031-1/+1
| | | | llvm-svn: 227955
* [NFC] Remove some unnecessary local objectsJohannes Doerfert2015-02-022-9/+11
| | | | llvm-svn: 227844
* [FIX] Updated test case (fixed names -> regular expressions)Johannes Doerfert2015-02-021-12/+12
| | | | llvm-svn: 227807
* [FIX] Partially fix the pointer negation crashJohannes Doerfert2015-02-021-2/+39
| | | | llvm-svn: 227805
* [FIX] Check non-deterministic isl outputJohannes Doerfert2015-02-021-1/+4
| | | | llvm-svn: 227802
* [NFC] Drop the "scattering" tuple nameJohannes Doerfert2015-02-0252-62/+59
| | | | llvm-svn: 227801
* Correct a typo in a commentTobias Grosser2015-01-301-1/+2
| | | | llvm-svn: 227569
* [FIX] Activated a pointer test and removed obsolete commentJohannes Doerfert2015-01-302-9/+3
| | | | llvm-svn: 227524
* [FIX] Correct two C snippets in test casesJohannes Doerfert2015-01-292-2/+2
| | | | llvm-svn: 227407
* [FIX] Handle pointer-pointer comparisonsJohannes Doerfert2015-01-292-2/+73
| | | | | | This should fix a problem introduced by r225464. llvm-svn: 227404
* [FIX] Debug build + instrinsic handlingJohannes Doerfert2015-01-264-25/+33
| | | | | | | The ignored intrinsics needed to be ignored in three other places as well. Tests and lnt pass now. llvm-svn: 227092
* [FIX] Independent blocks with intrinsics handlingJohannes Doerfert2015-01-255-5/+33
| | | | | | Also an old option was removed from some new test cases llvm-svn: 227057
OpenPOWER on IntegriCloud