[PATCH] D15680: [Polly] Do not check JSON alignment of scalar accesses

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 15 08:53:22 PST 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL257904: Do not check JSON alignment of scalar accesses (authored by Meinersbur).

Changed prior to commit:
  http://reviews.llvm.org/D15680?vs=43337&id=44998#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D15680

Files:
  polly/trunk/lib/Exchange/JSONExporter.cpp

Index: polly/trunk/lib/Exchange/JSONExporter.cpp
===================================================================
--- polly/trunk/lib/Exchange/JSONExporter.cpp
+++ polly/trunk/lib/Exchange/JSONExporter.cpp
@@ -304,33 +304,35 @@
       isl_id *OutId = isl_map_get_tuple_id(currentAccessMap, isl_dim_out);
       newAccessMap = isl_map_set_tuple_id(newAccessMap, isl_dim_out, OutId);
 
-      // We keep the old alignment, thus we cannot allow accesses to memory
-      // locations that were not accessed before if the alignment of the access
-      // is not the default alignment.
-      bool SpecialAlignment = true;
-      if (LoadInst *LoadI = dyn_cast<LoadInst>(MA->getAccessInstruction())) {
-        SpecialAlignment =
-            DL.getABITypeAlignment(LoadI->getType()) != LoadI->getAlignment();
-      } else if (StoreInst *StoreI =
-                     dyn_cast<StoreInst>(MA->getAccessInstruction())) {
-        SpecialAlignment =
-            DL.getABITypeAlignment(StoreI->getValueOperand()->getType()) !=
-            StoreI->getAlignment();
-      }
+      if (MA->isArrayKind()) {
+        // We keep the old alignment, thus we cannot allow accesses to memory
+        // locations that were not accessed before if the alignment of the
+        // access is not the default alignment.
+        bool SpecialAlignment = true;
+        if (LoadInst *LoadI = dyn_cast<LoadInst>(MA->getAccessInstruction())) {
+          SpecialAlignment =
+              DL.getABITypeAlignment(LoadI->getType()) != LoadI->getAlignment();
+        } else if (StoreInst *StoreI =
+                       dyn_cast<StoreInst>(MA->getAccessInstruction())) {
+          SpecialAlignment =
+              DL.getABITypeAlignment(StoreI->getValueOperand()->getType()) !=
+              StoreI->getAlignment();
+        }
 
-      if (SpecialAlignment) {
-        isl_set *newAccessSet = isl_map_range(isl_map_copy(newAccessMap));
-        isl_set *currentAccessSet =
-            isl_map_range(isl_map_copy(currentAccessMap));
-        bool isSubset = isl_set_is_subset(newAccessSet, currentAccessSet);
-        isl_set_free(newAccessSet);
-        isl_set_free(currentAccessSet);
-
-        if (!isSubset) {
-          errs() << "JScop file changes the accessed memory\n";
-          isl_map_free(currentAccessMap);
-          isl_map_free(newAccessMap);
-          return false;
+        if (SpecialAlignment) {
+          isl_set *newAccessSet = isl_map_range(isl_map_copy(newAccessMap));
+          isl_set *currentAccessSet =
+              isl_map_range(isl_map_copy(currentAccessMap));
+          bool isSubset = isl_set_is_subset(newAccessSet, currentAccessSet);
+          isl_set_free(newAccessSet);
+          isl_set_free(currentAccessSet);
+
+          if (!isSubset) {
+            errs() << "JScop file changes the accessed memory\n";
+            isl_map_free(currentAccessMap);
+            isl_map_free(newAccessMap);
+            return false;
+          }
         }
       }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15680.44998.patch
Type: text/x-patch
Size: 2990 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160115/a06ea556/attachment.bin>


More information about the llvm-commits mailing list