[llvm-commits] [polly] r138155 - in /polly/trunk/lib/Analysis: Dependences.cpp ScopInfo.cpp
Tobias Grosser
grosser at fim.uni-passau.de
Fri Aug 19 17:03:28 PDT 2011
Author: grosser
Date: Fri Aug 19 19:03:28 2011
New Revision: 138155
URL: http://llvm.org/viewvc/llvm-project?rev=138155&view=rev
Log:
ScopInfo/Dependences: Use parameter ids everywhere
Modified:
polly/trunk/lib/Analysis/Dependences.cpp
polly/trunk/lib/Analysis/ScopInfo.cpp
Modified: polly/trunk/lib/Analysis/Dependences.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/Dependences.cpp?rev=138155&r1=138154&r2=138155&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/Dependences.cpp (original)
+++ polly/trunk/lib/Analysis/Dependences.cpp Fri Aug 19 19:03:28 2011
@@ -52,7 +52,9 @@
}
bool Dependences::runOnScop(Scop &S) {
- isl_dim *dim = isl_dim_alloc(S.getCtx(), S.getNumParams(), 0, 0);
+ isl_dim *dim = isl_dim_alloc(S.getCtx(), 0, 0, 0);
+ isl_dim *Model = isl_set_get_dim(S.getContext());
+ dim = isl_dim_align_params(dim, Model);
if (sink)
isl_union_map_free(sink);
@@ -153,10 +155,13 @@
if (LegalityCheckDisabled)
return true;
- isl_dim *dim = isl_dim_alloc(S.getCtx(), S.getNumParams(), 0, 0);
+ isl_dim *dim = isl_dim_alloc(S.getCtx(), 0, 0, 0);
isl_union_map *schedule = isl_union_map_empty(dim);
+ isl_dim *Model = isl_set_get_dim(S.getContext());
+ schedule = isl_union_map_align_params(schedule, Model);
+
for (Scop::iterator SI = S.begin(), SE = S.end(); SI != SE; ++SI) {
ScopStmt *Stmt = *SI;
@@ -230,9 +235,11 @@
}
isl_union_map* getCombinedScheduleForDim(Scop *scop, unsigned dimLevel) {
- isl_dim *dim = isl_dim_alloc(scop->getCtx(), scop->getNumParams(), 0, 0);
+ isl_dim *dim = isl_dim_alloc(scop->getCtx(), 0, 0, 0);
isl_union_map *schedule = isl_union_map_empty(dim);
+ isl_dim *Model = isl_set_get_dim(scop->getContext());
+ schedule = isl_union_map_align_params(schedule, Model);
for (Scop::iterator SI = scop->begin(), SE = scop->end(); SI != SE; ++SI) {
ScopStmt *Stmt = *SI;
Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=138155&r1=138154&r2=138155&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
+++ polly/trunk/lib/Analysis/ScopInfo.cpp Fri Aug 19 19:03:28 2011
@@ -67,48 +67,6 @@
return returnvalue;
}
-static isl_set *set_remove_dim_ids(isl_set *set) {
- isl_ctx *ctx = isl_set_get_ctx(set);
- int numParams = isl_set_n_param(set);
- isl_printer *p = isl_printer_to_str(ctx);
- isl_set *new_set;
- char *str;
- const char *name = isl_set_get_tuple_name(set);
-
- p = isl_printer_set_output_format (p, ISL_FORMAT_EXT_POLYLIB);
- p = isl_printer_print_set(p, set);
-
- str = isl_printer_get_str (p);
- new_set = isl_set_read_from_str (ctx, str, numParams);
- new_set = isl_set_set_tuple_name(new_set, name);
- free (str);
- isl_set_free (set);
- isl_printer_free (p);
- return new_set;
-}
-
-static isl_map *map_remove_dim_ids(isl_map *map) {
- isl_ctx *ctx = isl_map_get_ctx(map);
- int numParams = isl_map_n_param(map);
- isl_printer *p = isl_printer_to_str(ctx);
- char *str;
- isl_map *new_map;
- const char *name_in = isl_map_get_tuple_name(map, isl_dim_in);
- const char *name_out = isl_map_get_tuple_name(map, isl_dim_out);
-
- p = isl_printer_set_output_format (p, ISL_FORMAT_EXT_POLYLIB);
- p = isl_printer_print_map(p, map);
-
- str = isl_printer_get_str (p);
- new_map = isl_map_read_from_str (ctx, str, numParams);
- new_map = isl_map_set_tuple_name(new_map, isl_dim_in, name_in);
- new_map = isl_map_set_tuple_name(new_map, isl_dim_out, name_out);
- isl_map_free (map);
- free (str);
- isl_printer_free (p);
- return new_map;
-}
-
/// Translate a SCEVExpression into an isl_pw_aff object.
struct SCEVAffinator : public SCEVVisitor<SCEVAffinator, isl_pw_aff*> {
private:
@@ -341,8 +299,7 @@
}
isl_basic_map *MemoryAccess::createBasicAccessMap(ScopStmt *Statement) {
- isl_dim *dim = isl_dim_alloc(Statement->getIslContext(),
- Statement->getNumParams(),
+ isl_dim *dim = isl_dim_alloc(Statement->getIslContext(), 0,
Statement->getNumIterators(), 1);
setBaseName();
@@ -384,9 +341,6 @@
isl_dim *Model = isl_set_get_dim(Statement->getParent()->getContext());
AccessRelation = isl_map_align_params(AccessRelation, Model);
-
- // FIXME: Temporarily remove dimension ids.
- AccessRelation = map_remove_dim_ids(AccessRelation);
}
MemoryAccess::MemoryAccess(const Value *BaseAddress, ScopStmt *Statement) {
@@ -397,6 +351,8 @@
isl_basic_map *BasicAccessMap = createBasicAccessMap(Statement);
AccessRelation = isl_map_from_basic_map(BasicAccessMap);
+ isl_dim *Model = isl_set_get_dim(Statement->getParent()->getContext());
+ AccessRelation = isl_map_align_params(AccessRelation, Model);
}
void MemoryAccess::print(raw_ostream &OS) const {
@@ -542,8 +498,7 @@
void ScopStmt::buildScattering(SmallVectorImpl<unsigned> &Scatter) {
unsigned NumberOfIterators = getNumIterators();
unsigned ScatDim = Parent.getMaxLoopDepth() * 2 + 1;
- isl_dim *dim = isl_dim_alloc(Parent.getCtx(), Parent.getNumParams(),
- NumberOfIterators, ScatDim);
+ isl_dim *dim = isl_dim_alloc(Parent.getCtx(), 0, NumberOfIterators, ScatDim);
dim = isl_dim_set_tuple_name(dim, isl_dim_out, "scattering");
dim = isl_dim_set_tuple_name(dim, isl_dim_in, getBaseName());
isl_basic_map *bmap = isl_basic_map_universe(isl_dim_copy(dim));
@@ -586,6 +541,8 @@
isl_int_clear(v);
isl_dim_free(dim);
Scattering = isl_map_from_basic_map(bmap);
+ isl_dim *Model = isl_set_get_dim(getParent()->getContext());
+ Scattering = isl_map_align_params(Scattering, Model);
}
void ScopStmt::buildAccesses(TempScop &tempScop, const Region &CurRegion) {
@@ -742,10 +699,6 @@
buildAccesses(tempScop, CurRegion);
IsReduction = tempScop.is_Reduction(*BB);
-
- // FIXME: Temporarily remove dimension ids.
- Scattering = map_remove_dim_ids(Scattering);
- Domain = set_remove_dim_ids(Domain);
}
ScopStmt::ScopStmt(Scop &parent, SmallVectorImpl<unsigned> &Scatter)
@@ -757,13 +710,13 @@
std::string IterationDomainString = "{[i0] : i0 = 0}";
Domain = isl_set_read_from_str(Parent.getCtx(), IterationDomainString.c_str(),
-1);
- Domain = isl_set_add_dims(Domain, isl_dim_param, Parent.getNumParams());
Domain = isl_set_set_tuple_name(Domain, getBaseName());
+ isl_dim *Model = isl_set_get_dim(getParent()->getContext());
+ Domain = isl_set_align_params(Domain, isl_dim_copy(Model));
// Build scattering.
unsigned ScatDim = Parent.getMaxLoopDepth() * 2 + 1;
- isl_dim *dim = isl_dim_alloc(Parent.getCtx(), Parent.getNumParams(), 1,
- ScatDim);
+ isl_dim *dim = isl_dim_alloc(Parent.getCtx(), 0, 1, ScatDim);
dim = isl_dim_set_tuple_name(dim, isl_dim_out, "scattering");
dim = isl_dim_set_tuple_name(dim, isl_dim_in, getBaseName());
isl_basic_map *bmap = isl_basic_map_universe(isl_dim_copy(dim));
@@ -782,6 +735,7 @@
bmap = isl_basic_map_add_constraint(bmap, c);
isl_int_clear(v);
Scattering = isl_map_from_basic_map(bmap);
+ Scattering = isl_map_align_params(Scattering, Model);
// Build memory accesses, use SetVector to keep the order of memory accesses
// and prevent the same memory access inserted more than once.
@@ -927,9 +881,6 @@
buildScop(tempScop, getRegion(), NestLoops, Scatter, LI);
Stmts.push_back(new ScopStmt(*this, Scatter));
- // FIXME: Temporarily remove dimension ids
- Context = set_remove_dim_ids(Context);
-
assert(NestLoops.empty() && "NestLoops not empty at top level!");
}
More information about the llvm-commits
mailing list