[polly] r337247 - [IslNodeBuilder] Use isl++ to replace foreach_set with for loop
Tobias Grosser via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 17 00:08:01 PDT 2018
Author: grosser
Date: Tue Jul 17 00:08:01 2018
New Revision: 337247
URL: http://llvm.org/viewvc/llvm-project?rev=337247&view=rev
Log:
[IslNodeBuilder] Use isl++ to replace foreach_set with for loop
Modified:
polly/trunk/include/polly/CodeGen/IslNodeBuilder.h
polly/trunk/lib/CodeGen/IslNodeBuilder.cpp
Modified: polly/trunk/include/polly/CodeGen/IslNodeBuilder.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/CodeGen/IslNodeBuilder.h?rev=337247&r1=337246&r2=337247&view=diff
==============================================================================
--- polly/trunk/include/polly/CodeGen/IslNodeBuilder.h (original)
+++ polly/trunk/include/polly/CodeGen/IslNodeBuilder.h Tue Jul 17 00:08:01 2018
@@ -89,8 +89,8 @@ struct SubtreeReferences {
/// SubtreeReferences structure.
/// @param CreateScalarRefs Should the result include allocas of scalar
/// references?
-isl_stat addReferencesFromStmt(const ScopStmt *Stmt, void *UserPtr,
- bool CreateScalarRefs = true);
+void addReferencesFromStmt(const ScopStmt *Stmt, void *UserPtr,
+ bool CreateScalarRefs = true);
class IslNodeBuilder {
public:
Modified: polly/trunk/lib/CodeGen/IslNodeBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/IslNodeBuilder.cpp?rev=337247&r1=337246&r2=337247&view=diff
==============================================================================
--- polly/trunk/lib/CodeGen/IslNodeBuilder.cpp (original)
+++ polly/trunk/lib/CodeGen/IslNodeBuilder.cpp Tue Jul 17 00:08:01 2018
@@ -23,6 +23,7 @@
#include "polly/Options.h"
#include "polly/ScopInfo.h"
#include "polly/Support/GICHelper.h"
+#include "polly/Support/ISLTools.h"
#include "polly/Support/SCEVValidator.h"
#include "polly/Support/ScopHelper.h"
#include "llvm/ADT/APInt.h"
@@ -242,8 +243,8 @@ static int findReferencesInBlock(struct
return 0;
}
-isl_stat addReferencesFromStmt(const ScopStmt *Stmt, void *UserPtr,
- bool CreateScalarRefs) {
+void addReferencesFromStmt(const ScopStmt *Stmt, void *UserPtr,
+ bool CreateScalarRefs) {
auto &References = *static_cast<struct SubtreeReferences *>(UserPtr);
if (Stmt->isBlockStmt())
@@ -275,8 +276,6 @@ isl_stat addReferencesFromStmt(const Sco
if (CreateScalarRefs)
References.Values.insert(References.BlockGen.getOrCreateAlloca(*Access));
}
-
- return isl_stat_ok;
}
/// Extract the out-of-scop values and SCEVs referenced from a set describing
@@ -290,12 +289,10 @@ isl_stat addReferencesFromStmt(const Sco
/// @param Set A set which references the ScopStmt we are interested in.
/// @param UserPtr A void pointer that can be casted to a SubtreeReferences
/// structure.
-static isl_stat addReferencesFromStmtSet(__isl_take isl_set *Set,
- void *UserPtr) {
- isl_id *Id = isl_set_get_tuple_id(Set);
- auto *Stmt = static_cast<const ScopStmt *>(isl_id_get_user(Id));
- isl_id_free(Id);
- isl_set_free(Set);
+static void addReferencesFromStmtSet(isl::set Set,
+ struct SubtreeReferences *UserPtr) {
+ isl::id Id = Set.get_tuple_id();
+ auto *Stmt = static_cast<const ScopStmt *>(Id.get_user());
return addReferencesFromStmt(Stmt, UserPtr);
}
@@ -313,10 +310,11 @@ static isl_stat addReferencesFromStmtSet
/// results are returned and further information is
/// provided.
static void
-addReferencesFromStmtUnionSet(isl_union_set *USet,
+addReferencesFromStmtUnionSet(isl::union_set USet,
struct SubtreeReferences &References) {
- isl_union_set_foreach_set(USet, addReferencesFromStmtSet, &References);
- isl_union_set_free(USet);
+
+ for (isl::set Set : USet.get_set_list())
+ addReferencesFromStmtSet(Set, &References);
}
__isl_give isl_union_map *
@@ -338,7 +336,8 @@ void IslNodeBuilder::getReferencesInSubt
for (const auto &I : OutsideLoopIterations)
Values.insert(cast<SCEVUnknown>(I.second)->getValue());
- isl_union_set *Schedule = isl_union_map_domain(getScheduleForAstNode(For));
+ isl::union_set Schedule =
+ isl::manage(isl_union_map_domain(getScheduleForAstNode(For)));
addReferencesFromStmtUnionSet(Schedule, References);
for (const SCEV *Expr : SCEVs) {
More information about the llvm-commits
mailing list