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

Tobias Grosser grosser at fim.uni-passau.de
Tue Feb 14 06:02:40 PST 2012


Author: grosser
Date: Tue Feb 14 08:02:40 2012
New Revision: 150482

URL: http://llvm.org/viewvc/llvm-project?rev=150482&view=rev
Log:
ScopInfo: Add Scop::getDomains()

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

Modified: polly/trunk/include/polly/ScopInfo.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/ScopInfo.h?rev=150482&r1=150481&r2=150482&view=diff
==============================================================================
--- polly/trunk/include/polly/ScopInfo.h (original)
+++ polly/trunk/include/polly/ScopInfo.h Tue Feb 14 08:02:40 2012
@@ -43,6 +43,7 @@
 struct isl_basic_map;
 struct isl_id;
 struct isl_set;
+struct isl_union_set;
 struct isl_space;
 struct isl_constraint;
 
@@ -572,6 +573,9 @@
   ///
   /// @return The isl context of this static control part.
   isl_ctx *getIslCtx() const;
+
+  /// @brief Get a union set containing the iteration domains of all statements.
+  __isl_give isl_union_set *getDomains();
 };
 
 /// @brief Print Scop scop to raw_ostream O.

Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=150482&r1=150481&r2=150482&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
+++ polly/trunk/lib/Analysis/ScopInfo.cpp Tue Feb 14 08:02:40 2012
@@ -938,6 +938,21 @@
 
 isl_ctx *Scop::getIslCtx() const { return IslCtx; }
 
+__isl_give isl_union_set *Scop::getDomains() {
+  isl_union_set *Domain = NULL;
+
+  for (Scop::iterator SI = begin(), SE = end(); SI != SE; ++SI)
+    if ((*SI)->isFinalRead())
+      continue;
+    else if (!Domain)
+      Domain = isl_union_set_from_set((*SI)->getDomain());
+    else
+      Domain = isl_union_set_union(Domain,
+        isl_union_set_from_set((*SI)->getDomain()));
+
+  return Domain;
+}
+
 ScalarEvolution *Scop::getSE() const { return SE; }
 
 bool Scop::isTrivialBB(BasicBlock *BB, TempScop &tempScop) {

Modified: polly/trunk/lib/ScheduleOptimizer.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/ScheduleOptimizer.cpp?rev=150482&r1=150481&r2=150482&view=diff
==============================================================================
--- polly/trunk/lib/ScheduleOptimizer.cpp (original)
+++ polly/trunk/lib/ScheduleOptimizer.cpp Tue Feb 14 08:02:40 2012
@@ -423,16 +423,7 @@
                           | Dependences::TYPE_WAW;
 
   isl_union_map *Dependences = D->getDependences(DependencyKinds);
-  isl_union_set *Domain = NULL;
-
-  for (Scop::iterator SI = S.begin(), SE = S.end(); SI != SE; ++SI)
-    if ((*SI)->isFinalRead())
-      continue;
-    else if (!Domain)
-      Domain = isl_union_set_from_set((*SI)->getDomain());
-    else
-      Domain = isl_union_set_union(Domain,
-        isl_union_set_from_set((*SI)->getDomain()));
+  isl_union_set *Domain = S.getDomains();
 
   if (!Domain)
     return false;





More information about the llvm-commits mailing list