[polly] r210927 - [Refactor] C++11 Memory access iterators in SCoP stmts

Johannes Doerfert jdoerfert at codeaurora.org
Fri Jun 13 11:01:45 PDT 2014


Author: jdoerfert
Date: Fri Jun 13 13:01:45 2014
New Revision: 210927

URL: http://llvm.org/viewvc/llvm-project?rev=210927&view=rev
Log:
[Refactor] C++11 Memory access iterators in SCoP stmts

+ Added const iterator version
+ Changed name to begin/end to allow range loops
+ Changed call sites to range loops
+ Changed typename to (const_)iterator

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

Modified: polly/trunk/include/polly/ScopInfo.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/ScopInfo.h?rev=210927&r1=210926&r2=210927&view=diff
==============================================================================
--- polly/trunk/include/polly/ScopInfo.h (original)
+++ polly/trunk/include/polly/ScopInfo.h Fri Jun 13 13:01:45 2014
@@ -354,9 +354,13 @@ public:
 
   void setBasicBlock(BasicBlock *Block) { BB = Block; }
 
-  typedef MemoryAccessVec::iterator memacc_iterator;
-  memacc_iterator memacc_begin() { return MemAccs.begin(); }
-  memacc_iterator memacc_end() { return MemAccs.end(); }
+  typedef MemoryAccessVec::iterator iterator;
+  typedef MemoryAccessVec::const_iterator const_iterator;
+
+  iterator begin() { return MemAccs.begin(); }
+  iterator end() { return MemAccs.end(); }
+  const_iterator begin() const { return MemAccs.begin(); }
+  const_iterator end() const { return MemAccs.end(); }
 
   unsigned getNumParams() const;
   unsigned getNumIterators() const;

Modified: polly/trunk/lib/Analysis/Dependences.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/Dependences.cpp?rev=210927&r1=210926&r2=210927&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/Dependences.cpp (original)
+++ polly/trunk/lib/Analysis/Dependences.cpp Fri Jun 13 13:01:45 2014
@@ -77,15 +77,13 @@ void Dependences::collectInfo(Scop &S, i
   *Schedule = isl_union_map_empty(Space);
 
   for (ScopStmt *Stmt : S) {
-    for (ScopStmt::memacc_iterator MI = Stmt->memacc_begin(),
-                                   ME = Stmt->memacc_end();
-         MI != ME; ++MI) {
+    for (MemoryAccess *MA : *Stmt) {
       isl_set *domcp = Stmt->getDomain();
-      isl_map *accdom = (*MI)->getAccessRelation();
+      isl_map *accdom = MA->getAccessRelation();
 
       accdom = isl_map_intersect_domain(accdom, domcp);
 
-      if ((*MI)->isRead())
+      if (MA->isRead())
         *Read = isl_union_map_add_map(*Read, accdom);
       else
         *Write = isl_union_map_add_map(*Write, accdom);

Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=210927&r1=210926&r2=210927&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
+++ polly/trunk/lib/Analysis/ScopInfo.cpp Fri Jun 13 13:01:45 2014
@@ -567,8 +567,8 @@ void ScopStmt::buildAccesses(TempScop &t
 }
 
 void ScopStmt::realignParams() {
-  for (memacc_iterator MI = memacc_begin(), ME = memacc_end(); MI != ME; ++MI)
-    (*MI)->realignParams();
+  for (MemoryAccess *MA : *this)
+    MA->realignParams();
 
   Domain = isl_set_align_params(Domain, Parent.getParamSpace());
   Scattering = isl_map_align_params(Scattering, Parent.getParamSpace());
@@ -988,14 +988,12 @@ __isl_give isl_union_map *Scop::getWrite
   for (Scop::iterator SI = this->begin(), SE = this->end(); SI != SE; ++SI) {
     ScopStmt *Stmt = *SI;
 
-    for (ScopStmt::memacc_iterator MI = Stmt->memacc_begin(),
-                                   ME = Stmt->memacc_end();
-         MI != ME; ++MI) {
-      if (!(*MI)->isWrite())
+    for (MemoryAccess *MA : *Stmt) {
+      if (!MA->isWrite())
         continue;
 
       isl_set *Domain = Stmt->getDomain();
-      isl_map *AccessDomain = (*MI)->getAccessRelation();
+      isl_map *AccessDomain = MA->getAccessRelation();
 
       AccessDomain = isl_map_intersect_domain(AccessDomain, Domain);
       Write = isl_union_map_add_map(Write, AccessDomain);
@@ -1010,14 +1008,12 @@ __isl_give isl_union_map *Scop::getReads
   for (Scop::iterator SI = this->begin(), SE = this->end(); SI != SE; ++SI) {
     ScopStmt *Stmt = *SI;
 
-    for (ScopStmt::memacc_iterator MI = Stmt->memacc_begin(),
-                                   ME = Stmt->memacc_end();
-         MI != ME; ++MI) {
-      if (!(*MI)->isRead())
+    for (MemoryAccess *MA : *Stmt) {
+      if (!MA->isRead())
         continue;
 
       isl_set *Domain = Stmt->getDomain();
-      isl_map *AccessDomain = (*MI)->getAccessRelation();
+      isl_map *AccessDomain = MA->getAccessRelation();
 
       AccessDomain = isl_map_intersect_domain(AccessDomain, Domain);
       Read = isl_union_map_add_map(Read, AccessDomain);

Modified: polly/trunk/lib/Exchange/JSONExporter.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Exchange/JSONExporter.cpp?rev=210927&r1=210926&r2=210927&view=diff
==============================================================================
--- polly/trunk/lib/Exchange/JSONExporter.cpp (original)
+++ polly/trunk/lib/Exchange/JSONExporter.cpp Fri Jun 13 13:01:45 2014
@@ -104,13 +104,11 @@ Json::Value JSONExporter::getJSON(Scop &
     statement["schedule"] = Stmt->getScatteringStr();
     statement["accesses"];
 
-    for (ScopStmt::memacc_iterator MI = Stmt->memacc_begin(),
-                                   ME = Stmt->memacc_end();
-         MI != ME; ++MI) {
+    for (MemoryAccess *MA : *Stmt) {
       Json::Value access;
 
-      access["kind"] = (*MI)->isRead() ? "read" : "write";
-      access["relation"] = (*MI)->getAccessRelationStr();
+      access["kind"] = MA->isRead() ? "read" : "write";
+      access["relation"] = MA->getAccessRelationStr();
 
       statement["accesses"].append(access);
     }
@@ -263,14 +261,12 @@ bool JSONImporter::runOnScop(Scop &scop)
     ScopStmt *Stmt = *SI;
 
     int memoryAccessIdx = 0;
-    for (ScopStmt::memacc_iterator MI = Stmt->memacc_begin(),
-                                   ME = Stmt->memacc_end();
-         MI != ME; ++MI) {
+    for (MemoryAccess *MA : *Stmt) {
       Json::Value accesses = jscop["statements"][statementIdx]["accesses"]
                                   [memoryAccessIdx]["relation"];
       isl_map *newAccessMap =
           isl_map_read_from_str(S->getIslCtx(), accesses.asCString());
-      isl_map *currentAccessMap = (*MI)->getAccessRelation();
+      isl_map *currentAccessMap = MA->getAccessRelation();
 
       if (isl_map_dim(newAccessMap, isl_dim_param) !=
           isl_map_dim(currentAccessMap, isl_dim_param)) {
@@ -311,7 +307,7 @@ bool JSONImporter::runOnScop(Scop &scop)
         // Statistics.
         ++NewAccessMapFound;
         newAccessStrings.push_back(accesses.asCString());
-        (*MI)->setNewAccessRelation(newAccessMap);
+        MA->setNewAccessRelation(newAccessMap);
       } else {
         isl_map_free(newAccessMap);
       }





More information about the llvm-commits mailing list