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();