[polly] r300398 - Update isl bindings to latest version (+ Polly extensions)

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Sat Apr 15 01:15:54 PDT 2017


Author: grosser
Date: Sat Apr 15 03:15:54 2017
New Revision: 300398

URL: http://llvm.org/viewvc/llvm-project?rev=300398&view=rev
Log:
Update isl bindings to latest version (+ Polly extensions)

After the isl C++ binding generator is now close to being upstreamed to isl, we
synchronize the latest changes to Polly. These are mostly formatting changes
plus a small interface change for the foreach callback function and some naming
changes in isl::boolean.

Modified:
    polly/trunk/lib/External/isl/include/isl-noexceptions.h
    polly/trunk/lib/Transform/DeLICM.cpp

Modified: polly/trunk/lib/External/isl/include/isl-noexceptions.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/include/isl-noexceptions.h?rev=300398&r1=300397&r2=300398&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/include/isl-noexceptions.h (original)
+++ polly/trunk/lib/External/isl/include/isl-noexceptions.h Sat Apr 15 03:15:54 2017
@@ -1,8 +1,7 @@
 /// These are automatically generated C++ bindings for isl.
 ///
-///
 /// isl is a library for computing with integer sets and maps described by
-/// Presburger formula. On top of this, isl provides various tools for
+/// Presburger formulas. On top of this, isl provides various tools for
 /// Polyhedral compilation ranging from dependence analysis over scheduling
 /// to AST generation.
 
@@ -29,36 +28,6 @@ namespace isl {
 
 inline namespace noexceptions {
 
-// forward declarations
-class aff;
-class ast_build;
-class ast_expr;
-class ast_node;
-class basic_map;
-class basic_set;
-class id;
-class local_space;
-class map;
-class multi_aff;
-class multi_pw_aff;
-class multi_union_pw_aff;
-class multi_val;
-class point;
-class pw_aff;
-class pw_multi_aff;
-class schedule;
-class schedule_constraints;
-class schedule_node;
-class set;
-class space;
-class union_access_info;
-class union_flow;
-class union_map;
-class union_pw_aff;
-class union_pw_multi_aff;
-class union_set;
-class val;
-
 #define ISLPP_STRINGIZE_(X) #X
 #define ISLPP_STRINGIZE(X) ISLPP_STRINGIZE_(X)
 
@@ -67,38 +36,36 @@ class val;
     if (test)                                                \
       break;                                                 \
     fputs("Assertion \"" #test "\" failed at " __FILE__      \
-          ":" ISLPP_STRINGIZE(__LINE__) "\n  " message "\n", \
-          stderr);                                           \
+      ":" ISLPP_STRINGIZE(__LINE__) "\n  " message "\n",     \
+      stderr);                                               \
   } while (0)
 
 class boolean {
 private:
-  friend isl::boolean manage(isl_bool val);
-
   isl_bool val;
 
+  friend isl::boolean manage(isl_bool val);
+  explicit boolean(isl_bool val): val(val) {}
 public:
   boolean()
       : val(isl_bool_error) {}
+
   /* implicit */ boolean(bool val)
       : val(val ? isl_bool_true : isl_bool_false) {}
 
   bool is_error() const { return val == isl_bool_error; }
-  bool is_false_or_error() const { return val != isl_bool_true; }
-  bool is_true_or_error() const { return val != isl_bool_false; }
-  bool is_no_error() const { return val != isl_bool_error; }
-  bool is_false_no_error() const { return val == isl_bool_false; }
-  bool is_true_no_error() const { return val == isl_bool_true; }
+  bool is_false() const { return val == isl_bool_false; }
+  bool is_true() const { return val == isl_bool_true; }
 
   explicit operator bool() const {
-    ISLPP_ASSERT(is_no_error(), "IMPLEMENTATION ERROR: Unhandled error state");
-    return is_true_no_error();
+    ISLPP_ASSERT(!is_error(), "IMPLEMENTATION ERROR: Unhandled error state");
+    return is_true();
   }
 
   boolean operator!() const {
     if (is_error())
-      return boolean();
-    return !is_true_no_error();
+      return *this;
+    return !is_true();
   }
 };
 
@@ -108,7 +75,6 @@ inline isl::boolean manage(isl_bool val)
 
 class ctx {
   isl_ctx *ptr;
-
 public:
   /* implicit */ ctx(isl_ctx *ctx)
       : ptr(ctx) {}
@@ -124,7 +90,7 @@ public:
 
 enum class stat {
   ok = isl_stat_ok,
-  error = isl_stat_error,
+  error = isl_stat_error
 };
 
 enum class dim {
@@ -137,6 +103,43 @@ enum class dim {
   all = isl_dim_all
 };
 
+}
+} // namespace isl
+
+namespace isl {
+
+inline namespace noexceptions {
+
+// forward declarations
+class aff;
+class ast_build;
+class ast_expr;
+class ast_node;
+class basic_map;
+class basic_set;
+class id;
+class local_space;
+class map;
+class multi_aff;
+class multi_pw_aff;
+class multi_union_pw_aff;
+class multi_val;
+class point;
+class pw_aff;
+class pw_multi_aff;
+class schedule;
+class schedule_constraints;
+class schedule_node;
+class set;
+class space;
+class union_access_info;
+class union_flow;
+class union_map;
+class union_pw_aff;
+class union_pw_multi_aff;
+class union_set;
+class val;
+
 // declarations for isl::aff
 inline isl::aff manage(__isl_take isl_aff *ptr);
 
@@ -482,7 +485,7 @@ public:
   inline isl::map flatten() const;
   inline isl::map flatten_domain() const;
   inline isl::map flatten_range() const;
-  inline isl::stat foreach_basic_map(std::function<isl::stat(isl::basic_map)> &&fn) const;
+  inline isl::stat foreach_basic_map(const std::function<isl::stat(isl::basic_map)> &fn) const;
   static inline isl::map from_range(isl::set set);
   inline isl::map gist(isl::map context) const;
   inline isl::map gist_domain(isl::set context) const;
@@ -728,7 +731,7 @@ public:
   inline bool is_null() const;
   inline std::string to_str() const;
   inline isl::pw_aff add(isl::pw_aff pwaff2) const;
-  inline isl::stat foreach_piece(std::function<isl::stat(isl::set, isl::aff)> &&fn) const;
+  inline isl::stat foreach_piece(const std::function<isl::stat(isl::set, isl::aff)> &fn) const;
   inline isl::space get_space() const;
   inline isl::boolean is_cst() const;
   inline isl::pw_aff mul(isl::pw_aff pwaff2) const;
@@ -932,7 +935,7 @@ public:
   inline isl::pw_aff dim_max(int pos) const;
   inline isl::pw_aff dim_min(int pos) const;
   inline isl::set flatten() const;
-  inline isl::stat foreach_basic_set(std::function<isl::stat(isl::basic_set)> &&fn) const;
+  inline isl::stat foreach_basic_set(const std::function<isl::stat(isl::basic_set)> &fn) const;
   inline isl::set gist(isl::set context) const;
   inline isl::map identity() const;
   inline isl::set intersect(isl::set set2) const;
@@ -1082,10 +1085,10 @@ public:
   inline /* implicit */ union_map();
   inline /* implicit */ union_map(const isl::union_map &obj);
   inline /* implicit */ union_map(std::nullptr_t);
+  inline explicit union_map(isl::ctx ctx, const std::string &str);
   inline explicit union_map(isl::union_pw_aff upa);
   inline /* implicit */ union_map(isl::basic_map bmap);
   inline /* implicit */ union_map(isl::map map);
-  inline explicit union_map(isl::ctx ctx, const std::string &str);
   inline isl::union_map &operator=(isl::union_map obj);
   inline ~union_map();
   inline __isl_give isl_union_map *copy() const &;
@@ -1117,7 +1120,7 @@ public:
   inline isl::union_map factor_range() const;
   inline isl::union_map fixed_power(isl::val exp) const;
   inline isl::union_map flat_range_product(isl::union_map umap2) const;
-  inline isl::stat foreach_map(std::function<isl::stat(isl::map)> &&fn) const;
+  inline isl::stat foreach_map(const std::function<isl::stat(isl::map)> &fn) const;
   static inline isl::union_map from(isl::union_pw_multi_aff upma);
   static inline isl::union_map from(isl::multi_union_pw_aff mupa);
   static inline isl::union_map from_domain_and_range(isl::union_set domain, isl::union_set range);
@@ -1188,7 +1191,7 @@ public:
   inline std::string to_str() const;
   inline isl::union_pw_aff add(isl::union_pw_aff upa2) const;
   static inline isl::union_pw_aff empty(isl::space space);
-  inline isl::stat foreach_pw_aff(std::function<isl::stat(isl::pw_aff)> &&fn) const;
+  inline isl::stat foreach_pw_aff(const std::function<isl::stat(isl::pw_aff)> &fn) const;
   inline isl::space get_space() const;
   inline isl::union_pw_aff pullback(isl::union_pw_multi_aff upma) const;
   inline isl::union_pw_aff sub(isl::union_pw_aff upa2) const;
@@ -1271,8 +1274,8 @@ public:
   inline isl::union_set coalesce() const;
   inline isl::union_set compute_divs() const;
   inline isl::union_set detect_equalities() const;
-  inline isl::stat foreach_point(std::function<isl::stat(isl::point)> &&fn) const;
-  inline isl::stat foreach_set(std::function<isl::stat(isl::set)> &&fn) const;
+  inline isl::stat foreach_point(const std::function<isl::stat(isl::point)> &fn) const;
+  inline isl::stat foreach_set(const std::function<isl::stat(isl::set)> &fn) const;
   inline isl::union_set gist(isl::union_set context) const;
   inline isl::union_set gist_params(isl::set set) const;
   inline isl::union_map identity() const;
@@ -2302,6 +2305,7 @@ bool local_space::is_null() const {
   return ptr == nullptr;
 }
 
+
 // implementations for isl::map
 isl::map manage(__isl_take isl_map *ptr) {
   return map(ptr);
@@ -2457,13 +2461,13 @@ isl::map map::flatten_range() const {
   return manage(res);
 }
 
-isl::stat map::foreach_basic_map(std::function<isl::stat(isl::basic_map)> &&fn) const {
+isl::stat map::foreach_basic_map(const std::function<isl::stat(isl::basic_map)> &fn) const {
   auto fn_lambda = [](isl_basic_map *arg_0, void *arg_1) -> isl_stat {
     auto *func = (std::function<isl::stat(isl::basic_map)> *)arg_1;
-    isl::stat ret = (*func)(isl::manage(arg_0));
+    stat ret = (*func) (isl::manage(arg_0));
     return isl_stat(ret);
   };
-  auto res = isl_map_foreach_basic_map(get(), fn_lambda, &fn);
+  auto res = isl_map_foreach_basic_map(get(), fn_lambda, (void *) &fn);
   return isl::stat(res);
 }
 
@@ -3272,13 +3276,13 @@ isl::pw_aff pw_aff::add(isl::pw_aff pwaf
   return manage(res);
 }
 
-isl::stat pw_aff::foreach_piece(std::function<isl::stat(isl::set, isl::aff)> &&fn) const {
+isl::stat pw_aff::foreach_piece(const std::function<isl::stat(isl::set, isl::aff)> &fn) const {
   auto fn_lambda = [](isl_set *arg_0, isl_aff *arg_1, void *arg_2) -> isl_stat {
     auto *func = (std::function<isl::stat(isl::set, isl::aff)> *)arg_2;
-    isl::stat ret = (*func)(isl::manage(arg_0), isl::manage(arg_1));
+    stat ret = (*func) (isl::manage(arg_0), isl::manage(arg_1));
     return isl_stat(ret);
   };
-  auto res = isl_pw_aff_foreach_piece(get(), fn_lambda, &fn);
+  auto res = isl_pw_aff_foreach_piece(get(), fn_lambda, (void *) &fn);
   return isl::stat(res);
 }
 
@@ -3947,13 +3951,13 @@ isl::set set::flatten() const {
   return manage(res);
 }
 
-isl::stat set::foreach_basic_set(std::function<isl::stat(isl::basic_set)> &&fn) const {
+isl::stat set::foreach_basic_set(const std::function<isl::stat(isl::basic_set)> &fn) const {
   auto fn_lambda = [](isl_basic_set *arg_0, void *arg_1) -> isl_stat {
     auto *func = (std::function<isl::stat(isl::basic_set)> *)arg_1;
-    isl::stat ret = (*func)(isl::manage(arg_0));
+    stat ret = (*func) (isl::manage(arg_0));
     return isl_stat(ret);
   };
-  auto res = isl_set_foreach_basic_set(get(), fn_lambda, &fn);
+  auto res = isl_set_foreach_basic_set(get(), fn_lambda, (void *) &fn);
   return isl::stat(res);
 }
 
@@ -4423,6 +4427,11 @@ union_map::union_map(std::nullptr_t)
 union_map::union_map(__isl_take isl_union_map *ptr)
     : ptr(ptr) {}
 
+union_map::union_map(isl::ctx ctx, const std::string &str) {
+  auto res = isl_union_map_read_from_str(ctx.release(), str.c_str());
+  ptr = res;
+}
+
 union_map::union_map(isl::union_pw_aff upa) {
   auto res = isl_union_map_from_union_pw_aff(upa.release());
   ptr = res;
@@ -4438,11 +4447,6 @@ union_map::union_map(isl::map map) {
   ptr = res;
 }
 
-union_map::union_map(isl::ctx ctx, const std::string &str) {
-  auto res = isl_union_map_read_from_str(ctx.release(), str.c_str());
-  ptr = res;
-}
-
 union_map &union_map::operator=(isl::union_map obj) {
   std::swap(this->ptr, obj.ptr);
   return *this;
@@ -4597,13 +4601,13 @@ isl::union_map union_map::flat_range_pro
   return manage(res);
 }
 
-isl::stat union_map::foreach_map(std::function<isl::stat(isl::map)> &&fn) const {
+isl::stat union_map::foreach_map(const std::function<isl::stat(isl::map)> &fn) const {
   auto fn_lambda = [](isl_map *arg_0, void *arg_1) -> isl_stat {
     auto *func = (std::function<isl::stat(isl::map)> *)arg_1;
-    isl::stat ret = (*func)(isl::manage(arg_0));
+    stat ret = (*func) (isl::manage(arg_0));
     return isl_stat(ret);
   };
-  auto res = isl_union_map_foreach_map(get(), fn_lambda, &fn);
+  auto res = isl_union_map_foreach_map(get(), fn_lambda, (void *) &fn);
   return isl::stat(res);
 }
 
@@ -4887,13 +4891,13 @@ isl::union_pw_aff union_pw_aff::empty(is
   return manage(res);
 }
 
-isl::stat union_pw_aff::foreach_pw_aff(std::function<isl::stat(isl::pw_aff)> &&fn) const {
+isl::stat union_pw_aff::foreach_pw_aff(const std::function<isl::stat(isl::pw_aff)> &fn) const {
   auto fn_lambda = [](isl_pw_aff *arg_0, void *arg_1) -> isl_stat {
     auto *func = (std::function<isl::stat(isl::pw_aff)> *)arg_1;
-    isl::stat ret = (*func)(isl::manage(arg_0));
+    stat ret = (*func) (isl::manage(arg_0));
     return isl_stat(ret);
   };
-  auto res = isl_union_pw_aff_foreach_pw_aff(get(), fn_lambda, &fn);
+  auto res = isl_union_pw_aff_foreach_pw_aff(get(), fn_lambda, (void *) &fn);
   return isl::stat(res);
 }
 
@@ -5167,23 +5171,23 @@ isl::union_set union_set::detect_equalit
   return manage(res);
 }
 
-isl::stat union_set::foreach_point(std::function<isl::stat(isl::point)> &&fn) const {
+isl::stat union_set::foreach_point(const std::function<isl::stat(isl::point)> &fn) const {
   auto fn_lambda = [](isl_point *arg_0, void *arg_1) -> isl_stat {
     auto *func = (std::function<isl::stat(isl::point)> *)arg_1;
-    isl::stat ret = (*func)(isl::manage(arg_0));
+    stat ret = (*func) (isl::manage(arg_0));
     return isl_stat(ret);
   };
-  auto res = isl_union_set_foreach_point(get(), fn_lambda, &fn);
+  auto res = isl_union_set_foreach_point(get(), fn_lambda, (void *) &fn);
   return isl::stat(res);
 }
 
-isl::stat union_set::foreach_set(std::function<isl::stat(isl::set)> &&fn) const {
+isl::stat union_set::foreach_set(const std::function<isl::stat(isl::set)> &fn) const {
   auto fn_lambda = [](isl_set *arg_0, void *arg_1) -> isl_stat {
     auto *func = (std::function<isl::stat(isl::set)> *)arg_1;
-    isl::stat ret = (*func)(isl::manage(arg_0));
+    stat ret = (*func) (isl::manage(arg_0));
     return isl_stat(ret);
   };
-  auto res = isl_union_set_foreach_set(get(), fn_lambda, &fn);
+  auto res = isl_union_set_foreach_set(get(), fn_lambda, (void *) &fn);
   return isl::stat(res);
 }
 

Modified: polly/trunk/lib/Transform/DeLICM.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/DeLICM.cpp?rev=300398&r1=300397&r2=300398&view=diff
==============================================================================
--- polly/trunk/lib/Transform/DeLICM.cpp (original)
+++ polly/trunk/lib/Transform/DeLICM.cpp Sat Apr 15 03:15:54 2017
@@ -516,8 +516,8 @@ private:
            isl_bool_true);
     auto Universe = give(isl_union_set_union(Occupied.copy(), Unused.copy()));
 
-    assert(Known.domain().is_subset(Universe).is_true_or_error());
-    assert(Written.domain().is_subset(Universe).is_true_or_error());
+    assert(!Known.domain().is_subset(Universe).is_false());
+    assert(!Written.domain().is_subset(Universe).is_false());
 #endif
   }
 




More information about the llvm-commits mailing list