summaryrefslogtreecommitdiffstats
path: root/polly/lib/External/isl/isl_ast_codegen.c
Commit message (Collapse)AuthorAgeFilesLines
* Update to isl-0.20-65-gb822a210Tobias Grosser2018-08-091-4/+24
| | | | | | | This update fixes https://https:/llvm.org/PR38348. Thanks Michael for reporting the issue to isl and Sven for fixing the issue. llvm-svn: 339311
* Update isl to isl-0.19-107-gc4fe33d8Tobias Grosser2018-04-211-5/+6
| | | | | | This is a regular maintenance update. llvm-svn: 330496
* Update isl to isl-0.18-1047-g4a20ef8Tobias Grosser2018-02-201-2/+13
| | | | | | | | | | | | | | | | | | This update: - Removes several deprecated functions (e.g., isl_band). - Improves the pretty-printing of sets by detecting modulos and "false" equalities. - Minor improvements to coalescing and increased robustness of the isl scheduler. This update does not yet include isl commit isl-0.18-90-gd00cb45 (isl_pw_*_alloc: add missing check for compatible spaces, Wed Sep 6 12:18:04 2017 +0200), as this additional check is too tight and unfortunately causes two test case failures in Polly. A patch has been submitted to isl and will be included in the next isl update for Polly. llvm-svn: 325557
* Update isl to isl-0.17.1-57-g1879898Tobias Grosser2016-06-121-1/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | With this update the isl AST generation extracts disjunctive constraints early on. As a result, code that previously resulted in two branches with (close-to) identical code within them: if (P <= -1) { for (int c0 = 0; c0 < N; c0 += 1) Stmt_store(c0); } else if (P >= 1) for (int c0 = 0; c0 < N; c0 += 1) Stmt_store(c0); results now in only a single branch body: if (P <= -1 || P >= 1) for (int c0 = 0; c0 < N; c0 += 1) Stmt_store(c0); This resolves http://llvm.org/PR27559 Besides the above change, this isl update brings better simplification of sets/maps containing existentially quantified dimensions and fixes a bug in isl's coalescing. llvm-svn: 272500
* Update to isl-0.16.1-145-g243bf7cTobias Grosser2016-03-251-4/+3
| | | | | | | Just an import to keep track with the latest version of isl. We are not looking for specific features. llvm-svn: 264452
* Update to ISL 0.16.1Michael Kruse2016-01-151-40/+63
| | | | llvm-svn: 257898
* Update isl to isl-0.15-142-gf101714Tobias Grosser2015-12-041-14/+84
| | | | | | | | | | This update brings in improvements to isl's 'isolate' option that reduce the number of code versions generated. This results in both code-size and compile time reduction for outer loop vectorization. Thanks to Roman Garev and Sven Verdoolaege for working on this improvement. llvm-svn: 254706
* Update isl to isl-0.15-140-g9279e30Michael Kruse2015-12-021-1/+16
| | | | | | | | | | The motivation is to fix a compilation error with Visual Studio 2013. See http://reviews.llvm.org/D14886. Thanks to Sumanth Gundapaneni for finding the issue and suggesting a patch. llvm-svn: 254498
* Update isl to isl-0.15-86-g595055eTobias Grosser2015-07-241-2/+5
| | | | | | | Besides a couple of cleanups and refactorings in isl, this change set fixes a couple of bugs in isl, that can cause issues during code generation. llvm-svn: 243110
* Update ISL to isl-0.15-61-gcea776fMichael Kruse2015-07-211-0/+1
| | | | | | | The motivation is to fix a wrong use of the inline qualifier. This fixes the Polly build using Visual Studio 2015 RC. llvm-svn: 242780
* Update isl to isl-0.15-35-ga1e44f0Tobias Grosser2015-07-021-7/+87
| | | | | | This fixes a memory leak with in the sioimath backend. llvm-svn: 241247
* Update isl to 93b8e43dTobias Grosser2015-05-281-65/+68
| | | | | | | This update brings mostly interface cleanups, but also fixes two bugs in imath (a memory leak, some undefined behavior). llvm-svn: 238422
* Update isl to 6be6768eTobias Grosser2015-05-181-12/+11
| | | | | | | | Besides a couple of interface cleanups, this change also contains a performance optimization of isl_mat_product that should give us up to almost 6% compiletime reduction. llvm-svn: 237616
* Update isl to c3892bebc0Tobias Grosser2015-05-091-0/+2
| | | | | | Various smaller improvements and bugfixes. llvm-svn: 236932
* Update isl to 285e92aeaTobias Grosser2015-03-301-0/+273
| | | | | | | This is mostly a set of schedule tree enhancements which are not yet directly useful to Polly. llvm-svn: 233567
* Update isl to 94d707dTobias Grosser2015-03-191-92/+1299
| | | | | | | | | The major improvements are: - Extended schedule tree support - AST generation from schedule trees llvm-svn: 232709
* Update isl to 88d60cfe1 'add isl_ast_expr_call'Tobias Grosser2015-02-261-1/+1
| | | | | | | | For Polly the two interesting changes are short_circuit && and || AST expressions as well as the introduction of isl_ast_build_expr_from_set, a well defined interface to compute ast expressions from constraint sets. llvm-svn: 230636
* Update isl to 0980603 'isl_tab_pip.c: parallel_constraints: drop useless ↵Tobias Grosser2015-02-251-5/+1
| | | | | | | | | | | | | | assignment' This update contains: - Fixes of minor issues detected by clang's scan_build - More schedule tree infrastructure additions This update slightly changes the output of our dependence analysis, but these changes are purely syntactially. llvm-svn: 230528
* Update to isl 99d53692baTobias Grosser2015-02-161-44/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Import isl(+imath) as an external library into PollyTobias Grosser2015-02-041-0/+3921
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
OpenPOWER on IntegriCloud