ScopInfo: Add isStrideX to unify stride checking

llvm-svn: 148810
diff --git a/polly/lib/CodeGeneration.cpp b/polly/lib/CodeGeneration.cpp
index d586a99..393b7e8 100644
--- a/polly/lib/CodeGeneration.cpp
+++ b/polly/lib/CodeGeneration.cpp
@@ -456,9 +456,9 @@
 
     assert(scatteringDomain && "No scattering domain available");
 
-    if (Access.isStrideZero(scatteringDomain))
+    if (Access.isStrideZero(isl_set_copy(scatteringDomain)))
       newLoad = generateStrideZeroLoad(load, scalarMaps[0], vectorWidth);
-    else if (Access.isStrideOne(scatteringDomain))
+    else if (Access.isStrideOne(isl_set_copy(scatteringDomain)))
       newLoad = generateStrideOneLoad(load, scalarMaps[0], vectorWidth);
     else
       newLoad = generateUnknownStrideLoad(load, scalarMaps, vectorWidth);
@@ -515,7 +515,7 @@
     const Value *pointer = store->getPointerOperand();
     Value *vector = getOperand(store->getValueOperand(), BBMap, &vectorMap);
 
-    if (Access.isStrideOne(scatteringDomain)) {
+    if (Access.isStrideOne(isl_set_copy(scatteringDomain))) {
       Type *vectorPtrType = getVectorPtrTy(pointer, vectorWidth);
       Value *newPointer = getOperand(pointer, BBMap, &vectorMap);
 
@@ -1259,7 +1259,8 @@
     for (int i = 1; i < vectorWidth; i++)
       IVS[i] = Builder.CreateAdd(IVS[i-1], StrideValue, "p_vector_iv");
 
-    isl_set *scatteringDomain = isl_set_from_cloog_domain(f->domain);
+    isl_set *scatteringDomain =
+      isl_set_copy(isl_set_from_cloog_domain(f->domain));
 
     // Add loop iv to symbols.
     (*clastVars)[f->iterator] = LB;
@@ -1273,6 +1274,7 @@
     }
 
     // Loop is finished, so remove its iv from the live symbols.
+    isl_set_free(scatteringDomain);
     clastVars->erase(f->iterator);
   }