Use "const auto &" in range based for loops

This previous code added in r216842 most likely created unnecessary copies.

Reported-by: Duncan P. N. Exon Smith  <dexonsmith@apple.com>
llvm-svn: 217507
diff --git a/polly/lib/CodeGen/CodeGeneration.cpp b/polly/lib/CodeGen/CodeGeneration.cpp
index f215e57..c9f7c3f 100644
--- a/polly/lib/CodeGen/CodeGeneration.cpp
+++ b/polly/lib/CodeGen/CodeGeneration.cpp
@@ -488,7 +488,7 @@
   // Copy the current value map into all vector maps if the key wasn't
   // available yet. This is needed in case vector codegen is performed in
   // OpenMP subfunctions.
-  for (auto KV : ValueMap)
+  for (const auto &KV : ValueMap)
     for (int i = 0; i < VectorDimensions; ++i)
       VectorMap[i].insert(KV);
 
@@ -561,7 +561,7 @@
   SetVector<Value *> Values;
 
   // The clast variables
-  for (auto I : ClastVars)
+  for (const auto &I : ClastVars)
     Values.insert(I.second);
 
   // Find the temporaries that are referenced in the clast statements'
@@ -583,12 +583,12 @@
 ClastStmtCodeGen::updateWithValueMap(OMPGenerator::ValueToValueMapTy &VMap) {
   std::set<Value *> Inserted;
 
-  for (auto I : ClastVars) {
+  for (const auto &I : ClastVars) {
     ClastVars[I.first] = VMap[I.second];
     Inserted.insert(I.second);
   }
 
-  for (auto I : VMap) {
+  for (const auto &I : VMap) {
     if (Inserted.count(I.first))
       continue;
 
@@ -1060,7 +1060,7 @@
   }
 
   virtual void printScop(raw_ostream &OS) const {
-    for (auto PI : ParallelLoops)
+    for (const auto &PI : ParallelLoops)
       OS << "Parallel loop with iterator '" << PI << "' generated\n";
   }