diff options
author | Tobias Grosser <tobias@grosser.es> | 2018-07-17 06:33:26 +0000 |
---|---|---|
committer | Tobias Grosser <tobias@grosser.es> | 2018-07-17 06:33:26 +0000 |
commit | ef800ff1ff55eb2505db33cf198bfca8e76dd334 (patch) | |
tree | 7e497e2570ba0c317cc5bb5493eec5653e64958c /polly | |
parent | b54fb868653dcb020de7ef9b820af7a8d2558d0f (diff) |
[Simplify] Replace isl foreach calls with for loops
Diffstat (limited to 'polly')
-rw-r--r-- | polly/lib/Transform/Simplify.cpp | 49 |
1 files changed, 22 insertions, 27 deletions
diff --git a/polly/lib/Transform/Simplify.cpp b/polly/lib/Transform/Simplify.cpp index 1402f434796..8b0a6950340 100644 --- a/polly/lib/Transform/Simplify.cpp +++ b/polly/lib/Transform/Simplify.cpp @@ -97,18 +97,16 @@ static isl::union_map underapproximatedAddMap(isl::union_map UMap, return UMap.add_map(Map); isl::map Result = isl::map::empty(PrevMap.get_space()); - PrevMap.foreach_basic_map([&Result](isl::basic_map BMap) -> isl::stat { - if (isl_map_n_basic_map(Result.get()) > SimplifyMaxDisjuncts) - return isl::stat::error; + for (isl::basic_map BMap : PrevMap.get_basic_map_list()) { + if (Result.n_basic_map() > SimplifyMaxDisjuncts) + break; Result = Result.unite(BMap); - return isl::stat::ok; - }); - Map.foreach_basic_map([&Result](isl::basic_map BMap) -> isl::stat { + } + for (isl::basic_map BMap : Map.get_basic_map_list()) { if (isl_map_n_basic_map(Result.get()) > SimplifyMaxDisjuncts) - return isl::stat::error; + break; Result = Result.unite(BMap); - return isl::stat::ok; - }); + } isl::union_map UResult = UMap.subtract(isl::map::universe(PrevMap.get_space())); @@ -312,7 +310,7 @@ private: FutureWrites.uncurry().intersect_domain(Filter.wrap()); // Iterate through the candidates. - Filtered.foreach_map([&, this](isl::map Map) -> isl::stat { + for (isl::map Map : Filtered.get_map_list()) { MemoryAccess *OtherMA = (MemoryAccess *)Map.get_space() .get_tuple_id(isl::dim::out) .get_user(); @@ -324,7 +322,7 @@ private: // elements are allowed. Verify that it only accesses allowed // elements. Otherwise, continue with the next candidate. if (!OtherAccRel.is_subset(AllowedAccesses).is_true()) - return isl::stat::ok; + continue; // The combined access relation. // { Domain[] -> Element[] } @@ -342,8 +340,8 @@ private: WritesCoalesced++; // Don't look for more candidates. - return isl::stat::error; - }); + break; + } } // Two writes cannot be coalesced if there is another access (to some of @@ -352,20 +350,18 @@ private: // elements, but any MemoryAccess that touches any of the invalidated // elements. SmallPtrSet<MemoryAccess *, 2> TouchedAccesses; - FutureWrites.intersect_domain(AccRelWrapped) - .foreach_map([&TouchedAccesses](isl::map Map) -> isl::stat { - MemoryAccess *MA = (MemoryAccess *)Map.get_space() - .range() - .unwrap() - .get_tuple_id(isl::dim::out) - .get_user(); - TouchedAccesses.insert(MA); - return isl::stat::ok; - }); + for (isl::map Map : + FutureWrites.intersect_domain(AccRelWrapped).get_map_list()) { + MemoryAccess *MA = (MemoryAccess *)Map.get_space() + .range() + .unwrap() + .get_tuple_id(isl::dim::out) + .get_user(); + TouchedAccesses.insert(MA); + } isl::union_map NewFutureWrites = isl::union_map::empty(FutureWrites.get_space()); - FutureWrites.foreach_map([&TouchedAccesses, &NewFutureWrites]( - isl::map FutureWrite) -> isl::stat { + for (isl::map FutureWrite : FutureWrites.get_map_list()) { MemoryAccess *MA = (MemoryAccess *)FutureWrite.get_space() .range() .unwrap() @@ -373,8 +369,7 @@ private: .get_user(); if (!TouchedAccesses.count(MA)) NewFutureWrites = NewFutureWrites.add_map(FutureWrite); - return isl::stat::ok; - }); + } FutureWrites = NewFutureWrites; if (MA->isMustWrite() && !ValSet.is_null()) { |