|
24 | 24 | //===----------------------------------------------------------------------===// |
25 | 25 |
|
26 | 26 | #include "SharedMemoryAutoPar.h" |
| 27 | +#include "tsar/ADT/PersistentMap.h" |
27 | 28 | #include "tsar/ADT/SpanningTreeRelation.h" |
28 | 29 | #include "tsar/Analysis/AnalysisServer.h" |
29 | 30 | #include "tsar/Analysis/Attributes.h" |
@@ -241,7 +242,7 @@ class ClangDVMHSMParallelization : public ClangSMParallelization { |
241 | 242 | bcl::tagged<SmallVector<VariableT, 1>, VariableT>, |
242 | 243 | bcl::tagged<unsigned, Hierarchy>>>; |
243 | 244 |
|
244 | | - using IPOMap = DenseMap< |
| 245 | + using IPOMap = PersistentMap< |
245 | 246 | const Function *, |
246 | 247 | std::tuple<bool, SmallPtrSet<const Value *, 4>, |
247 | 248 | SmallVector<PragmaActual *, 4>, |
@@ -1002,7 +1003,9 @@ bool ClangDVMHSMParallelization::initializeIPO( |
1002 | 1003 | continue; |
1003 | 1004 | if (isParallelCallee(*F, Node.get<Id>(), Reachability)) |
1004 | 1005 | continue; |
1005 | | - auto [ToIgnoreItr, IsNew] = mIPOMap.try_emplace(F); |
| 1006 | + IPOMap::persistent_iterator ToIgnoreItr; |
| 1007 | + bool IsNew; |
| 1008 | + std::tie(ToIgnoreItr, IsNew) = mIPOMap.try_emplace(F); |
1006 | 1009 | if (!GO.NoExternalCalls && hasExternalCalls(Node.template get<Id>()) || |
1007 | 1010 | Node.template get<InCycle>() || !OptimizeAll || |
1008 | 1011 | any_of(F->users(), [](auto *U) { return !isa<CallBase>(U); })) |
|
0 commit comments