[polly] r300323 - Use isl C++ foreach implementation

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 20 07:52:49 PDT 2017


Did you forget to remove the declarations of foreachElt in GICHelper.h?

Michael

2017-04-14 15:39 GMT+02:00 Tobias Grosser via llvm-commits
<llvm-commits at lists.llvm.org>:
> Author: grosser
> Date: Fri Apr 14 08:39:40 2017
> New Revision: 300323
>
> URL: http://llvm.org/viewvc/llvm-project?rev=300323&view=rev
> Log:
> Use isl C++ foreach implementation
>
> This commit switches Polly over to the isl::obj::foreach_* implementation, which
> is part of the new isl bindings and follows the foreach pattern established in
> Polly by Michael Kruse.
>
> The original isl C function:
>
>   isl_stat isl_union_set_foreach_set(__isl_keep isl_union_set *uset,
>       isl_stat (*fn)(__isl_take isl_set *set, void *user), void *user);
>
> which required the user to define a static callback function to which all
> interesting parameters are passed via a 'void *' user-pointer, is on the
> C++ side available as a function that takes a std::function<>, which can
> carry any additional arguments without the need for a user pointer:
>
>   stat UnionSet::foreach_set(const std::function<stat(set)> &fn) const;
>
> The following code illustrates the use of the new C++ interface:
>
>   auto Lambda = [=, &Result](isl::set Set) -> isl::stat {
>     auto Shifted = shiftDimension(Set, Pos, Amount);
>     Result = Result.add(Shifted);
>     return isl::stat::ok;
>   }
>
>   UnionSet.foreach_set(Lambda);
>
> Polly had some specialized foreach functions which did not require the lambdas
> to return a status flag. We remove these functions in this commit to move Polly
> completely over to the new isl interface. We may in the future discuss if
> functors without return values can be supported easily.
>
> Another extension proposed by Michael Kruse is the use of C++ iterators to allow
> the use of normal for loops to iterate over these sets. Such an extension would
> allow us to further simplify the code.
>
> Reviewed-by: Michael Kruse <llvm at meinersbur.de>
>
> Differential Revision: https://reviews.llvm.org/D30620
>
> Modified:
>     polly/trunk/lib/Support/GICHelper.cpp
>     polly/trunk/lib/Support/ISLTools.cpp
>     polly/trunk/lib/Transform/FlattenAlgo.cpp
>     polly/trunk/lib/Transform/FlattenSchedule.cpp
>     polly/trunk/unittests/DeLICM/DeLICMTest.cpp
>     polly/trunk/unittests/Isl/IslTest.cpp
>
> Modified: polly/trunk/lib/Support/GICHelper.cpp
> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/GICHelper.cpp?rev=300323&r1=300322&r2=300323&view=diff
> ==============================================================================
> --- polly/trunk/lib/Support/GICHelper.cpp (original)
> +++ polly/trunk/lib/Support/GICHelper.cpp Fri Apr 14 08:39:40 2017
> @@ -203,106 +203,3 @@ std::string polly::getIslCompatibleName(
>    ValStr.erase(0, 1);
>    return getIslCompatibleName(Prefix, ValStr, Suffix);
>  }
> -
> -void polly::foreachElt(const isl::map &Map,
> -                       const std::function<void(isl::basic_map)> &F) {
> -  isl_map_foreach_basic_map(
> -      Map.keep(),
> -      [](__isl_take isl_basic_map *BMap, void *User) -> isl_stat {
> -        auto &F =
> -            *static_cast<const std::function<void(isl::basic_map)> *>(User);
> -        F(give(BMap));
> -        return isl_stat_ok;
> -      },
> -      const_cast<void *>(static_cast<const void *>(&F)));
> -}
> -
> -void polly::foreachElt(const isl::set &Set,
> -                       const std::function<void(isl::basic_set)> &F) {
> -  isl_set_foreach_basic_set(
> -      Set.keep(),
> -      [](__isl_take isl_basic_set *BSet, void *User) -> isl_stat {
> -        auto &F =
> -            *static_cast<const std::function<void(isl::basic_set)> *>(User);
> -        F(give(BSet));
> -        return isl_stat_ok;
> -      },
> -      const_cast<void *>(static_cast<const void *>(&F)));
> -}
> -
> -void polly::foreachElt(const isl::union_map &UMap,
> -                       const std::function<void(isl::map Map)> &F) {
> -  isl_union_map_foreach_map(
> -      UMap.keep(),
> -      [](__isl_take isl_map *Map, void *User) -> isl_stat {
> -        auto &F = *static_cast<const std::function<void(isl::map)> *>(User);
> -        F(give(Map));
> -        return isl_stat_ok;
> -      },
> -      const_cast<void *>(static_cast<const void *>(&F)));
> -}
> -
> -void polly::foreachElt(const isl::union_set &USet,
> -                       const std::function<void(isl::set Set)> &F) {
> -  isl_union_set_foreach_set(
> -      USet.keep(),
> -      [](__isl_take isl_set *Set, void *User) -> isl_stat {
> -        auto &F = *static_cast<const std::function<void(isl::set)> *>(User);
> -        F(give(Set));
> -        return isl_stat_ok;
> -      },
> -      const_cast<void *>(static_cast<const void *>(&F)));
> -}
> -
> -void polly::foreachElt(const isl::union_pw_aff &UPwAff,
> -                       const std::function<void(isl::pw_aff)> &F) {
> -  isl_union_pw_aff_foreach_pw_aff(
> -      UPwAff.keep(),
> -      [](__isl_take isl_pw_aff *PwAff, void *User) -> isl_stat {
> -        auto &F = *static_cast<const std::function<void(isl::pw_aff)> *>(User);
> -        F(give(PwAff));
> -        return isl_stat_ok;
> -      },
> -      const_cast<void *>(static_cast<const void *>(&F)));
> -}
> -
> -isl_stat
> -polly::foreachEltWithBreak(const isl::map &Map,
> -                           const std::function<isl_stat(isl::basic_map)> &F) {
> -  return isl_map_foreach_basic_map(
> -      Map.keep(),
> -      [](__isl_take isl_basic_map *BMap, void *User) -> isl_stat {
> -        auto &F =
> -            *static_cast<const std::function<isl_stat(isl::basic_map)> *>(User);
> -        return F(give(BMap));
> -      },
> -      const_cast<void *>(static_cast<const void *>(&F)));
> -}
> -
> -isl_stat
> -polly::foreachEltWithBreak(const isl::union_map &UMap,
> -                           const std::function<isl_stat(isl::map Map)> &F) {
> -  return isl_union_map_foreach_map(
> -      UMap.keep(),
> -      [](__isl_take isl_map *Map, void *User) -> isl_stat {
> -        auto &F =
> -            *static_cast<const std::function<isl_stat(isl::map Map)> *>(User);
> -        return F(give(Map));
> -      },
> -      const_cast<void *>(static_cast<const void *>(&F)));
> -}
> -
> -isl_stat polly::foreachPieceWithBreak(
> -    const isl::pw_aff &PwAff,
> -    const std::function<isl_stat(isl::set, isl::aff)> &F) {
> -  return isl_pw_aff_foreach_piece(
> -      PwAff.keep(),
> -      [](__isl_take isl_set *Domain, __isl_take isl_aff *Aff,
> -         void *User) -> isl_stat {
> -        auto &F =
> -            *static_cast<const std::function<isl_stat(isl::set, isl::aff)> *>(
> -                User);
> -        return F(give(Domain), give(Aff));
> -      },
> -      const_cast<void *>(static_cast<const void *>(&F)));
> -}
>
> Modified: polly/trunk/lib/Support/ISLTools.cpp
> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/ISLTools.cpp?rev=300323&r1=300322&r2=300323&view=diff
> ==============================================================================
> --- polly/trunk/lib/Support/ISLTools.cpp (original)
> +++ polly/trunk/lib/Support/ISLTools.cpp Fri Apr 14 08:39:40 2017
> @@ -89,9 +89,10 @@ isl::map polly::beforeScatter(isl::map M
>
>  isl::union_map polly::beforeScatter(isl::union_map UMap, bool Strict) {
>    auto Result = give(isl_union_map_empty(isl_union_map_get_space(UMap.keep())));
> -  foreachElt(UMap, [=, &Result](isl::map Map) {
> +  UMap.foreach_map([=, &Result](isl::map Map) -> isl::stat {
>      auto After = beforeScatter(Map, Strict);
>      Result = give(isl_union_map_add_map(Result.take(), After.take()));
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
> @@ -105,9 +106,10 @@ isl::map polly::afterScatter(isl::map Ma
>
>  isl::union_map polly::afterScatter(const isl::union_map &UMap, bool Strict) {
>    auto Result = give(isl_union_map_empty(isl_union_map_get_space(UMap.keep())));
> -  foreachElt(UMap, [=, &Result](isl::map Map) {
> +  UMap.foreach_map([=, &Result](isl::map Map) -> isl::stat {
>      auto After = afterScatter(Map, Strict);
>      Result = give(isl_union_map_add_map(Result.take(), After.take()));
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
> @@ -158,8 +160,9 @@ isl::set polly::singleton(isl::union_set
>
>  unsigned polly::getNumScatterDims(const isl::union_map &Schedule) {
>    unsigned Dims = 0;
> -  foreachElt(Schedule, [&Dims](isl::map Map) {
> +  Schedule.foreach_map([&Dims](isl::map Map) -> isl::stat {
>      Dims = std::max(Dims, isl_map_dim(Map.keep(), isl_dim_out));
> +    return isl::stat::ok;
>    });
>    return Dims;
>  }
> @@ -176,13 +179,14 @@ isl::space polly::getScatterSpace(const
>  isl::union_map polly::makeIdentityMap(const isl::union_set &USet,
>                                        bool RestrictDomain) {
>    auto Result = give(isl_union_map_empty(isl_union_set_get_space(USet.keep())));
> -  foreachElt(USet, [=, &Result](isl::set Set) {
> +  USet.foreach_set([=, &Result](isl::set Set) -> isl::stat {
>      auto IdentityMap = give(isl_map_identity(
>          isl_space_map_from_set(isl_set_get_space(Set.keep()))));
>      if (RestrictDomain)
>        IdentityMap =
>            give(isl_map_intersect_domain(IdentityMap.take(), Set.take()));
>      Result = give(isl_union_map_add_map(Result.take(), IdentityMap.take()));
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
> @@ -198,9 +202,10 @@ isl::map polly::reverseDomain(isl::map M
>
>  isl::union_map polly::reverseDomain(const isl::union_map &UMap) {
>    auto Result = give(isl_union_map_empty(isl_union_map_get_space(UMap.keep())));
> -  foreachElt(UMap, [=, &Result](isl::map Map) {
> +  UMap.foreach_map([=, &Result](isl::map Map) -> isl::stat {
>      auto Reversed = reverseDomain(std::move(Map));
>      Result = give(isl_union_map_add_map(Result.take(), Reversed.take()));
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
> @@ -219,9 +224,10 @@ isl::set polly::shiftDim(isl::set Set, i
>
>  isl::union_set polly::shiftDim(isl::union_set USet, int Pos, int Amount) {
>    auto Result = give(isl_union_set_empty(isl_union_set_get_space(USet.keep())));
> -  foreachElt(USet, [=, &Result](isl::set Set) {
> +  USet.foreach_set([=, &Result](isl::set Set) -> isl::stat {
>      auto Shifted = shiftDim(Set, Pos, Amount);
>      Result = give(isl_union_set_add_set(Result.take(), Shifted.take()));
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
> @@ -259,9 +265,10 @@ isl::union_map polly::shiftDim(isl::unio
>                                 int Amount) {
>    auto Result = isl::union_map::empty(UMap.get_space());
>
> -  foreachElt(UMap, [=, &Result](isl::map Map) {
> +  UMap.foreach_map([=, &Result](isl::map Map) -> isl::stat {
>      auto Shifted = shiftDim(Map, Dim, Pos, Amount);
>      Result = std::move(Result).add_map(Shifted);
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
> @@ -475,9 +482,10 @@ isl::map polly::distributeDomain(isl::ma
>
>  isl::union_map polly::distributeDomain(isl::union_map UMap) {
>    auto Result = give(isl_union_map_empty(isl_union_map_get_space(UMap.keep())));
> -  foreachElt(UMap, [=, &Result](isl::map Map) {
> +  UMap.foreach_map([=, &Result](isl::map Map) {
>      auto Distributed = distributeDomain(Map);
>      Result = give(isl_union_map_add_map(Result.take(), Distributed.copy()));
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
>
> Modified: polly/trunk/lib/Transform/FlattenAlgo.cpp
> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/FlattenAlgo.cpp?rev=300323&r1=300322&r2=300323&view=diff
> ==============================================================================
> --- polly/trunk/lib/Transform/FlattenAlgo.cpp (original)
> +++ polly/trunk/lib/Transform/FlattenAlgo.cpp Fri Apr 14 08:39:40 2017
> @@ -52,20 +52,20 @@ bool isVariableDim(const isl::basic_map
>
>  /// Whether Map's first out dimension is no constant nor piecewise constant.
>  bool isVariableDim(const isl::map &Map) {
> -  return foreachEltWithBreak(Map, [](isl::basic_map BMap) -> isl_stat {
> +  return Map.foreach_basic_map([](isl::basic_map BMap) -> isl::stat {
>      if (isVariableDim(BMap))
> -      return isl_stat_error;
> -    return isl_stat_ok;
> -  });
> +      return isl::stat::error;
> +    return isl::stat::ok;
> +  }) == isl::stat::ok;
>  }
>
>  /// Whether UMap's first out dimension is no (piecewise) constant.
>  bool isVariableDim(const isl::union_map &UMap) {
> -  return foreachEltWithBreak(UMap, [](isl::map Map) -> isl_stat {
> +  return UMap.foreach_map([](isl::map Map) -> isl::stat {
>      if (isVariableDim(Map))
> -      return isl_stat_error;
> -    return isl_stat_ok;
> -  });
> +      return isl::stat::error;
> +    return isl::stat::ok;
> +  }) == isl::stat::ok;
>  }
>
>  /// If @p PwAff maps to a constant, return said constant. If @p Max/@p Min, it
> @@ -74,39 +74,39 @@ bool isVariableDim(const isl::union_map
>  isl::val getConstant(isl::pw_aff PwAff, bool Max, bool Min) {
>    assert(!Max || !Min);
>    isl::val Result;
> -  foreachPieceWithBreak(PwAff, [=, &Result](isl::set Set, isl::aff Aff) {
> +  PwAff.foreach_piece([=, &Result](isl::set Set, isl::aff Aff) -> isl::stat {
>      if (Result && Result.is_nan())
> -      return isl_stat_ok;
> +      return isl::stat::ok;
>
>      // TODO: If Min/Max, we can also determine a minimum/maximum value if
>      // Set is constant-bounded.
>      if (!Aff.is_cst()) {
>        Result = isl::val::nan(Aff.get_ctx());
> -      return isl_stat_error;
> +      return isl::stat::error;
>      }
>
>      auto ThisVal = Aff.get_constant();
>      if (!Result) {
>        Result = ThisVal;
> -      return isl_stat_ok;
> +      return isl::stat::ok;
>      }
>
>      if (Result.eq(ThisVal))
> -      return isl_stat_ok;
> +      return isl::stat::ok;
>
>      if (Max && ThisVal.gt(Result)) {
>        Result = ThisVal;
> -      return isl_stat_ok;
> +      return isl::stat::ok;
>      }
>
>      if (Min && ThisVal.lt(Result)) {
>        Result = ThisVal;
> -      return isl_stat_ok;
> +      return isl::stat::ok;
>      }
>
>      // Not compatible
>      Result = isl::val::nan(Aff.get_ctx());
> -    return isl_stat_error;
> +    return isl::stat::error;
>    });
>    return Result;
>  }
> @@ -117,11 +117,12 @@ isl::union_pw_aff subtract(isl::union_pw
>      return UPwAff;
>
>    auto Result = isl::union_pw_aff::empty(UPwAff.get_space());
> -  foreachElt(UPwAff, [=, &Result](isl::pw_aff PwAff) {
> +  UPwAff.foreach_pw_aff([=, &Result](isl::pw_aff PwAff) -> isl::stat {
>      auto ValAff =
>          isl::pw_aff(isl::set::universe(PwAff.get_space().domain()), Val);
>      auto Subtracted = PwAff.sub(ValAff);
>      Result = Result.union_add(isl::union_pw_aff(Subtracted));
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
> @@ -132,11 +133,12 @@ isl::union_pw_aff multiply(isl::union_pw
>      return UPwAff;
>
>    auto Result = isl::union_pw_aff::empty(UPwAff.get_space());
> -  foreachElt(UPwAff, [=, &Result](isl::pw_aff PwAff) {
> +  UPwAff.foreach_pw_aff([=, &Result](isl::pw_aff PwAff) -> isl::stat {
>      auto ValAff =
>          isl::pw_aff(isl::set::universe(PwAff.get_space().domain()), Val);
>      auto Multiplied = PwAff.mul(ValAff);
>      Result = Result.union_add(Multiplied);
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
> @@ -152,9 +154,10 @@ isl::union_map scheduleProjectOut(const
>                      have no effect on schedule ranges */
>
>    auto Result = isl::union_map::empty(UMap.get_space());
> -  foreachElt(UMap, [=, &Result](isl::map Map) {
> +  UMap.foreach_map([=, &Result](isl::map Map) -> isl::stat {
>      auto Outprojected = Map.project_out(isl::dim::out, first, n);
>      Result = Result.add_map(Outprojected);
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
> @@ -166,8 +169,9 @@ isl::union_map scheduleProjectOut(const
>  /// number of dimensions is not supported by the other code in this file.
>  size_t scheduleScatterDims(const isl::union_map &Schedule) {
>    unsigned Dims = 0;
> -  foreachElt(Schedule, [&Dims](isl::map Map) {
> +  Schedule.foreach_map([&Dims](isl::map Map) -> isl::stat {
>      Dims = std::max(Dims, Map.dim(isl::dim::out));
> +    return isl::stat::ok;
>    });
>    return Dims;
>  }
> @@ -175,11 +179,12 @@ size_t scheduleScatterDims(const isl::un
>  /// Return the @p pos' range dimension, converted to an isl_union_pw_aff.
>  isl::union_pw_aff scheduleExtractDimAff(isl::union_map UMap, unsigned pos) {
>    auto SingleUMap = isl::union_map::empty(UMap.get_space());
> -  foreachElt(UMap, [=, &SingleUMap](isl::map Map) {
> +  UMap.foreach_map([=, &SingleUMap](isl::map Map) -> isl::stat {
>      auto MapDims = Map.dim(isl::dim::out);
>      auto SingleMap = Map.project_out(isl::dim::out, 0, pos);
>      SingleMap = SingleMap.project_out(isl::dim::out, 1, MapDims - pos - 1);
>      SingleUMap = SingleUMap.add_map(SingleMap);
> +    return isl::stat::ok;
>    });
>
>    auto UAff = isl::union_pw_multi_aff(SingleUMap);
>
> Modified: polly/trunk/lib/Transform/FlattenSchedule.cpp
> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/FlattenSchedule.cpp?rev=300323&r1=300322&r2=300323&view=diff
> ==============================================================================
> --- polly/trunk/lib/Transform/FlattenSchedule.cpp (original)
> +++ polly/trunk/lib/Transform/FlattenSchedule.cpp Fri Apr 14 08:39:40 2017
> @@ -29,8 +29,10 @@ namespace {
>  /// Prints the schedule for each statements on a new line.
>  void printSchedule(raw_ostream &OS, const isl::union_map &Schedule,
>                     int indent) {
> -  foreachElt(Schedule,
> -             [&OS, indent](isl::map Map) { OS.indent(indent) << Map << "\n"; });
> +  Schedule.foreach_map([&OS, indent](isl::map Map) -> isl::stat {
> +    OS.indent(indent) << Map << "\n";
> +    return isl::stat::ok;
> +  });
>  }
>
>  /// Flatten the schedule stored in an polly::Scop.
>
> Modified: polly/trunk/unittests/DeLICM/DeLICMTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/unittests/DeLICM/DeLICMTest.cpp?rev=300323&r1=300322&r2=300323&view=diff
> ==============================================================================
> --- polly/trunk/unittests/DeLICM/DeLICMTest.cpp (original)
> +++ polly/trunk/unittests/DeLICM/DeLICMTest.cpp Fri Apr 14 08:39:40 2017
> @@ -24,10 +24,11 @@ namespace {
>  /// Get the universes of all spaces in @p USet.
>  isl::union_set unionSpace(const isl::union_set &USet) {
>    auto Result = give(isl_union_set_empty(isl_union_set_get_space(USet.keep())));
> -  foreachElt(USet, [=, &Result](isl::set Set) {
> +  USet.foreach_set([=, &Result](isl::set Set) -> isl::stat {
>      auto Space = give(isl_set_get_space(Set.keep()));
>      auto Universe = give(isl_set_universe(Space.take()));
>      Result = give(isl_union_set_add_set(Result.take(), Universe.take()));
> +    return isl::stat::ok;
>    });
>    return Result;
>  }
> @@ -43,10 +44,11 @@ void completeLifetime(isl::union_set Uni
>
>      Known = isl::union_map::empty(ParamSpace);
>      Occupied = OccupiedAndKnown.domain();
> -    foreachElt(OccupiedAndKnown, [&Known](isl::map Map) {
> +    OccupiedAndKnown.foreach_map([&Known](isl::map Map) -> isl::stat {
>        if (isl_map_has_tuple_name(Map.keep(), isl_dim_out) != isl_bool_true)
> -        return;
> +        return isl::stat::ok;
>        Known = give(isl_union_map_add_map(Known.take(), Map.take()));
> +      return isl::stat::ok;
>      });
>    }
>
>
> Modified: polly/trunk/unittests/Isl/IslTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/unittests/Isl/IslTest.cpp?rev=300323&r1=300322&r2=300323&view=diff
> ==============================================================================
> --- polly/trunk/unittests/Isl/IslTest.cpp (original)
> +++ polly/trunk/unittests/Isl/IslTest.cpp Fri Apr 14 08:39:40 2017
> @@ -299,36 +299,40 @@ TEST(Isl, Foreach) {
>
>    {
>      auto NumBMaps = 0;
> -    foreachElt(TestMap, [&](isl::basic_map BMap) {
> +    TestMap.foreach_basic_map([&](isl::basic_map BMap) -> isl::stat {
>        EXPECT_EQ(BMap, TestBMap);
>        NumBMaps++;
> +      return isl::stat::ok;
>      });
>      EXPECT_EQ(1, NumBMaps);
>    }
>
>    {
>      auto NumBSets = 0;
> -    foreachElt(TestSet, [&](isl::basic_set BSet) {
> +    TestSet.foreach_basic_set([&](isl::basic_set BSet) -> isl::stat {
>        EXPECT_EQ(BSet, TestBSet);
>        NumBSets++;
> +      return isl::stat::ok;
>      });
>      EXPECT_EQ(1, NumBSets);
>    }
>
>    {
>      auto NumMaps = 0;
> -    foreachElt(TestUMap, [&](isl::map Map) {
> +    TestUMap.foreach_map([&](isl::map Map) -> isl::stat {
>        EXPECT_EQ(Map, TestMap);
>        NumMaps++;
> +      return isl::stat::ok;
>      });
>      EXPECT_EQ(1, NumMaps);
>    }
>
>    {
>      auto NumSets = 0;
> -    foreachElt(TestUSet, [&](isl::set Set) {
> +    TestUSet.foreach_set([&](isl::set Set) -> isl::stat {
>        EXPECT_EQ(Set, TestSet);
>        NumSets++;
> +      return isl::stat::ok;
>      });
>      EXPECT_EQ(1, NumSets);
>    }
> @@ -336,32 +340,32 @@ TEST(Isl, Foreach) {
>    {
>      auto UPwAff = isl::union_pw_aff(TestUSet, isl::val::zero(Ctx.get()));
>      auto NumPwAffs = 0;
> -    foreachElt(UPwAff, [&](isl::pw_aff PwAff) {
> +    UPwAff.foreach_pw_aff([&](isl::pw_aff PwAff) -> isl::stat {
>        EXPECT_TRUE(PwAff.is_cst());
>        NumPwAffs++;
> +      return isl::stat::ok;
>      });
>      EXPECT_EQ(1, NumPwAffs);
>    }
>
>    {
>      auto NumBMaps = 0;
> -    EXPECT_EQ(
> -        isl_stat_error,
> -        foreachEltWithBreak(TestMap, [&](isl::basic_map BMap) -> isl_stat {
> -          EXPECT_EQ(BMap, TestBMap);
> -          NumBMaps++;
> -          return isl_stat_error;
> -        }));
> +    EXPECT_EQ(isl::stat::error,
> +              TestMap.foreach_basic_map([&](isl::basic_map BMap) -> isl::stat {
> +                EXPECT_EQ(BMap, TestBMap);
> +                NumBMaps++;
> +                return isl::stat::error;
> +              }));
>      EXPECT_EQ(1, NumBMaps);
>    }
>
>    {
>      auto NumMaps = 0;
> -    EXPECT_EQ(isl_stat_error,
> -              foreachEltWithBreak(TestUMap, [&](isl::map Map) -> isl_stat {
> +    EXPECT_EQ(isl::stat::error,
> +              TestUMap.foreach_map([&](isl::map Map) -> isl::stat {
>                  EXPECT_EQ(Map, TestMap);
>                  NumMaps++;
> -                return isl_stat_error;
> +                return isl::stat::error;
>                }));
>      EXPECT_EQ(1, NumMaps);
>    }
> @@ -369,13 +373,12 @@ TEST(Isl, Foreach) {
>    {
>      auto TestPwAff = isl::pw_aff(TestSet, isl::val::zero(Ctx.get()));
>      auto NumPieces = 0;
> -    foreachPieceWithBreak(TestPwAff,
> -                          [&](isl::set Domain, isl::aff Aff) -> isl_stat {
> -                            EXPECT_EQ(Domain, TestSet);
> -                            EXPECT_TRUE(Aff.is_cst());
> -                            NumPieces++;
> -                            return isl_stat_error;
> -                          });
> +    TestPwAff.foreach_piece([&](isl::set Domain, isl::aff Aff) -> isl::stat {
> +      EXPECT_EQ(Domain, TestSet);
> +      EXPECT_TRUE(Aff.is_cst());
> +      NumPieces++;
> +      return isl::stat::error;
> +    });
>      EXPECT_EQ(1, NumPieces);
>    }
>  }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list