Move the ValueMapT declaration out of BlockGenerator

  Value maps are created and used in many places and it is not always
  possible to include CodeGen/Blockgenerators.h. To this end, ValueMapT
  now lives in the ScopHelper.h which does not have any dependences itself.

  This patch also replaces uses of different other value map types with
  the ValueMapT.

llvm-svn: 249606
diff --git a/polly/lib/CodeGen/IslNodeBuilder.cpp b/polly/lib/CodeGen/IslNodeBuilder.cpp
index a6603281..910a3be 100644
--- a/polly/lib/CodeGen/IslNodeBuilder.cpp
+++ b/polly/lib/CodeGen/IslNodeBuilder.cpp
@@ -175,7 +175,7 @@
   LoopInfo &LI;
   ScalarEvolution &SE;
   Region &R;
-  polly::BlockGenerator::ValueMapT &GlobalMap;
+  ValueMapT &GlobalMap;
   SetVector<Value *> &Values;
   SetVector<const SCEV *> &SCEVs;
   BlockGenerator &BlockGen;
@@ -311,8 +311,7 @@
   });
 }
 
-void IslNodeBuilder::updateValues(
-    ParallelLoopGenerator::ValueToValueMapTy &NewValues) {
+void IslNodeBuilder::updateValues(ValueMapT &NewValues) {
   SmallPtrSet<Value *, 5> Inserted;
 
   for (const auto &I : IDToValue) {
@@ -592,7 +591,7 @@
     SubtreeValues.insert(V);
   }
 
-  ParallelLoopGenerator::ValueToValueMapTy NewValues;
+  ValueMapT NewValues;
   ParallelLoopGenerator ParallelLoopGen(Builder, P, LI, DT, DL);
 
   IV = ParallelLoopGen.createParallelLoop(ValueLB, ValueUB, ValueInc,
@@ -607,7 +606,7 @@
   updateValues(NewValues);
   IDToValue[IteratorID] = IV;
 
-  ParallelLoopGenerator::ValueToValueMapTy NewValuesReverse;
+  ValueMapT NewValuesReverse;
 
   for (auto P : NewValues)
     NewValuesReverse[P.second] = P.first;
diff --git a/polly/lib/CodeGen/LoopGenerators.cpp b/polly/lib/CodeGen/LoopGenerators.cpp
index 4cc7a6c..74f19a8 100644
--- a/polly/lib/CodeGen/LoopGenerators.cpp
+++ b/polly/lib/CodeGen/LoopGenerators.cpp
@@ -146,7 +146,7 @@
 
 Value *ParallelLoopGenerator::createParallelLoop(
     Value *LB, Value *UB, Value *Stride, SetVector<Value *> &UsedValues,
-    ValueToValueMapTy &Map, BasicBlock::iterator *LoopBody) {
+    ValueMapT &Map, BasicBlock::iterator *LoopBody) {
   Function *SubFn;
 
   AllocaInst *Struct = storeValuesIntoStruct(UsedValues);
@@ -305,8 +305,7 @@
 }
 
 void ParallelLoopGenerator::extractValuesFromStruct(
-    SetVector<Value *> OldValues, Type *Ty, Value *Struct,
-    ValueToValueMapTy &Map) {
+    SetVector<Value *> OldValues, Type *Ty, Value *Struct, ValueMapT &Map) {
   for (unsigned i = 0; i < OldValues.size(); i++) {
     Value *Address = Builder.CreateStructGEP(Ty, Struct, i);
     Value *NewValue = Builder.CreateLoad(Address);
@@ -317,8 +316,7 @@
 
 Value *ParallelLoopGenerator::createSubFn(Value *Stride, AllocaInst *StructData,
                                           SetVector<Value *> Data,
-                                          ValueToValueMapTy &Map,
-                                          Function **SubFnPtr) {
+                                          ValueMapT &Map, Function **SubFnPtr) {
   BasicBlock *PrevBB, *HeaderBB, *ExitBB, *CheckNextBB, *PreHeaderBB, *AfterBB;
   Value *LBPtr, *UBPtr, *UserContext, *Ret1, *HasNextSchedule, *LB, *UB, *IV;
   Function *SubFn = createSubFnDefinition();