[llvm-commits] [polly] r141252 - in /polly/trunk: include/polly/ScopInfo.h lib/Analysis/Dependences.cpp lib/Analysis/ScopInfo.cpp

Tobias Grosser grosser at fim.uni-passau.de
Wed Oct 5 17:03:42 PDT 2011


Author: grosser
Date: Wed Oct  5 19:03:42 2011
New Revision: 141252

URL: http://llvm.org/viewvc/llvm-project?rev=141252&view=rev
Log:
Export the parameter space directly from the SCoP.

Use this to simplify some code.

Modified:
    polly/trunk/include/polly/ScopInfo.h
    polly/trunk/lib/Analysis/Dependences.cpp
    polly/trunk/lib/Analysis/ScopInfo.cpp

Modified: polly/trunk/include/polly/ScopInfo.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/ScopInfo.h?rev=141252&r1=141251&r2=141252&view=diff
==============================================================================
--- polly/trunk/include/polly/ScopInfo.h (original)
+++ polly/trunk/include/polly/ScopInfo.h Wed Oct  5 19:03:42 2011
@@ -22,6 +22,8 @@
 
 #include "llvm/Analysis/RegionPass.h"
 
+#include "isl/ctx.h"
+
 using namespace llvm;
 
 namespace llvm {
@@ -490,6 +492,7 @@
   ///
   /// @return The constraint on parameter of this Scop.
   inline isl_set *getContext() const { return Context; }
+  __isl_give isl_space  *getParamSpace() const;
 
   /// @brief Get an isl string representing the context.
   std::string getContextStr() const;

Modified: polly/trunk/lib/Analysis/Dependences.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/Dependences.cpp?rev=141252&r1=141251&r2=141252&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/Dependences.cpp (original)
+++ polly/trunk/lib/Analysis/Dependences.cpp Wed Oct  5 19:03:42 2011
@@ -52,9 +52,7 @@
 }
 
 bool Dependences::runOnScop(Scop &S) {
-  isl_space *Space = isl_space_alloc(S.getCtx(), 0, 0, 0);
-  isl_space *Model = isl_set_get_dim(S.getContext());
-  Space = isl_space_align_params(Space, Model);
+  isl_space *Space = S.getParamSpace();
 
   if (sink)
     isl_union_map_free(sink);
@@ -155,13 +153,10 @@
   if (LegalityCheckDisabled)
     return true;
 
-  isl_space *Space = isl_space_alloc(S.getCtx(), 0, 0, 0);
+  isl_space *Space = S.getParamSpace();
 
   isl_union_map *schedule = isl_union_map_empty(Space);
 
-  isl_space *Model = isl_set_get_space(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;
 
@@ -242,11 +237,8 @@
 }
 
 isl_union_map* getCombinedScheduleForSpace(Scop *scop, unsigned dimLevel) {
-  isl_space *Space = isl_space_alloc(scop->getCtx(), 0, 0, 0);
-
+  isl_space *Space = scop->getParamSpace();
   isl_union_map *schedule = isl_union_map_empty(Space);
-  isl_space *Model = isl_set_get_space(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;
@@ -264,7 +256,6 @@
                                       unsigned parallelDimension) {
   Scop *S = &getCurScop();
   isl_union_map *schedule = getCombinedScheduleForSpace(S, parallelDimension);
-  isl_space *SpaceModel = isl_union_map_get_space(schedule);
 
   // Calculate distance vector.
   isl_union_set *scheduleSubset;
@@ -330,7 +321,7 @@
   }
 
   isl_set *allZero = isl_set_from_basic_set(allZeroBS);
-  allZero = isl_set_align_params(allZero, isl_space_copy(SpaceModel));
+  allZero = isl_set_align_params(allZero, S->getParamSpace());
 
   // All zero, last unknown.
   // [0, 0, 0, ?]
@@ -350,7 +341,7 @@
   isl_local_space_free(LocalSpace);
 
   isl_set *lastUnknown = isl_set_from_basic_set(lastUnknownBS);
-lastUnknown = isl_set_align_params(lastUnknown, SpaceModel);
+  lastUnknown = isl_set_align_params(lastUnknown, S->getParamSpace());
 
   // Valid distance vectors
   isl_set *validDistances = isl_set_subtract(lastUnknown, allZero);

Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=141252&r1=141251&r2=141252&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
+++ polly/trunk/lib/Analysis/ScopInfo.cpp Wed Oct  5 19:03:42 2011
@@ -340,8 +340,8 @@
   AccessRelation = isl_map_set_tuple_name(AccessRelation, isl_dim_out,
                                           getBaseName().c_str());
 
-  isl_space *Model = isl_set_get_space(Statement->getParent()->getContext());
-  AccessRelation = isl_map_align_params(AccessRelation, Model);
+  isl_space *ParamSpace = Statement->getParent()->getParamSpace();
+  AccessRelation = isl_map_align_params(AccessRelation, ParamSpace);
 }
 
 MemoryAccess::MemoryAccess(const Value *BaseAddress, ScopStmt *Statement) {
@@ -352,8 +352,8 @@
 
   isl_basic_map *BasicAccessMap = createBasicAccessMap(Statement);
   AccessRelation = isl_map_from_basic_map(BasicAccessMap);
-  isl_space *Model = isl_set_get_space(Statement->getParent()->getContext());
-  AccessRelation = isl_map_align_params(AccessRelation, Model);
+  isl_space *ParamSpace = Statement->getParent()->getParamSpace();
+  AccessRelation = isl_map_align_params(AccessRelation, ParamSpace);
 }
 
 void MemoryAccess::print(raw_ostream &OS) const {
@@ -564,8 +564,7 @@
 
   isl_int_clear(v);
   Scattering = isl_map_from_basic_map(bmap);
-  isl_space *Model = isl_set_get_space(getParent()->getContext());
-  Scattering = isl_map_align_params(Scattering, Model);
+  Scattering = isl_map_align_params(Scattering, Parent.getParamSpace());
 }
 
 void ScopStmt::buildAccesses(TempScop &tempScop, const Region &CurRegion) {
@@ -642,7 +641,7 @@
   Space = isl_space_set_tuple_name(Space, isl_dim_set, getBaseName());
 
   Domain = isl_set_universe(isl_space_copy(Space));
-  Domain = isl_set_align_params(Domain, isl_set_get_space(Parent.getContext()));
+  Domain = isl_set_align_params(Domain, Parent.getParamSpace());
 
   isl_int v;
   isl_int_init(v);
@@ -738,8 +737,7 @@
   Domain = isl_set_read_from_str(Parent.getCtx(),
                                  IterationDomainString.c_str());
   Domain = isl_set_set_tuple_name(Domain, getBaseName());
-  isl_space *Model = isl_set_get_space(getParent()->getContext());
-  Domain = isl_set_align_params(Domain, isl_space_copy(Model));
+  Domain = isl_set_align_params(Domain, parent.getParamSpace());
 
   // Build scattering.
   unsigned ScatSpace = Parent.getMaxLoopDepth() * 2 + 1;
@@ -762,7 +760,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);
+  Scattering = isl_map_align_params(Scattering, parent.getParamSpace());
 
   // Build memory accesses, use SetVector to keep the order of memory accesses
   // and prevent the same memory access inserted more than once.
@@ -937,6 +935,10 @@
   return EntryName + "---" + ExitName;
 }
 
+__isl_give isl_space *Scop::getParamSpace() const {
+  return isl_set_get_space(this->Context);
+}
+
 void Scop::printContext(raw_ostream &OS) const {
   OS << "Context:\n";
 





More information about the llvm-commits mailing list