diff options
| author | Tobias Grosser <tobias@grosser.es> | 2018-02-20 07:26:42 +0000 |
|---|---|---|
| committer | Tobias Grosser <tobias@grosser.es> | 2018-02-20 07:26:42 +0000 |
| commit | fa8079d0dc1b9fbca201b92f30d3c97386c75114 (patch) | |
| tree | 8163f9c4eb97308b4c7a8a1777fdc9aac3c789be /polly/lib/External/isl/isl_ast_codegen.c | |
| parent | 85476dc45ad1216e533385964b9ce191968c316f (diff) | |
| download | bcm5719-llvm-fa8079d0dc1b9fbca201b92f30d3c97386c75114.tar.gz bcm5719-llvm-fa8079d0dc1b9fbca201b92f30d3c97386c75114.zip | |
Update isl to isl-0.18-1047-g4a20ef8
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
Diffstat (limited to 'polly/lib/External/isl/isl_ast_codegen.c')
| -rw-r--r-- | polly/lib/External/isl/isl_ast_codegen.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/polly/lib/External/isl/isl_ast_codegen.c b/polly/lib/External/isl/isl_ast_codegen.c index c56d4d5cf07..8f2e9c7c313 100644 --- a/polly/lib/External/isl/isl_ast_codegen.c +++ b/polly/lib/External/isl/isl_ast_codegen.c @@ -11,6 +11,8 @@ */ #include <limits.h> +#include <isl/val.h> +#include <isl/space.h> #include <isl/aff.h> #include <isl/constraint.h> #include <isl/set.h> @@ -1453,7 +1455,8 @@ static __isl_give isl_ast_graft *create_node_scaled( __isl_take isl_ast_build *build) { int depth; - int degenerate, eliminated; + int degenerate; + isl_bool eliminated; isl_basic_set *hull; isl_basic_set *enforced; isl_set *guard, *hoisted; @@ -3521,6 +3524,12 @@ static __isl_give isl_ast_graft_list *generate_shifted_component_only_after( * to the isolated domain). * We generate an AST for each piece and concatenate the results. * + * If the isolated domain is not convex, then it is replaced + * by a convex superset to ensure that the sets of preceding and + * following iterations are properly defined and, in particular, + * that there are no intermediate iterations that do not belong + * to the isolated domain. + * * In the special case where at least one element of the schedule * domain that does not belong to the isolated domain needs * to be scheduled after this isolated domain, but none of those @@ -5171,7 +5180,7 @@ static __isl_give isl_ast_graft_list *hoist_out_of_context( * to the domain elements executed by those iterations. * * The context node may introduce additional parameters as well as - * constraints on the outer schedule dimenions or original parameters. + * constraints on the outer schedule dimensions or original parameters. * * We add the extra parameters to a new build and the context * constraints to both the build and (as a single disjunct) @@ -5735,6 +5744,8 @@ __isl_give isl_ast_node *isl_ast_build_node_from_schedule( ctx = isl_ast_build_get_ctx(build); node = isl_schedule_get_root(schedule); + if (!node) + goto error; isl_schedule_free(schedule); build = isl_ast_build_copy(build); |

