summaryrefslogtreecommitdiffstats
path: root/polly/lib/External/isl/isl_ast_codegen.c
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2018-02-20 07:26:42 +0000
committerTobias Grosser <tobias@grosser.es>2018-02-20 07:26:42 +0000
commitfa8079d0dc1b9fbca201b92f30d3c97386c75114 (patch)
tree8163f9c4eb97308b4c7a8a1777fdc9aac3c789be /polly/lib/External/isl/isl_ast_codegen.c
parent85476dc45ad1216e533385964b9ce191968c316f (diff)
downloadbcm5719-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.c15
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);
OpenPOWER on IntegriCloud