@@ -178,7 +178,7 @@ void llvm::computeLTOCacheKey(
178
178
ImportMapIteratorTy ModIt;
179
179
const ModuleSummaryIndex::ModuleInfo *ModInfo;
180
180
181
- StringRef getIdentifier () const { return ModIt->getKey (); }
181
+ StringRef getIdentifier () const { return ModIt->getFirst (); }
182
182
const FunctionImporter::FunctionsToImportTy &getFunctions () const {
183
183
return ModIt->second ;
184
184
}
@@ -191,7 +191,7 @@ void llvm::computeLTOCacheKey(
191
191
192
192
for (ImportMapIteratorTy It = ImportList.begin (); It != ImportList.end ();
193
193
++It) {
194
- ImportModulesVector.push_back ({It, Index.getModule (It->getKey ())});
194
+ ImportModulesVector.push_back ({It, Index.getModule (It->getFirst ())});
195
195
}
196
196
// Order using module hash, to be both independent of module name and
197
197
// module order.
@@ -1362,14 +1362,15 @@ class lto::ThinBackendProc {
1362
1362
protected:
1363
1363
const Config &Conf;
1364
1364
ModuleSummaryIndex &CombinedIndex;
1365
- const StringMap< GVSummaryMapTy> &ModuleToDefinedGVSummaries;
1365
+ const DenseMap<StringRef, GVSummaryMapTy> &ModuleToDefinedGVSummaries;
1366
1366
lto::IndexWriteCallback OnWrite;
1367
1367
bool ShouldEmitImportsFiles;
1368
1368
1369
1369
public:
1370
- ThinBackendProc (const Config &Conf, ModuleSummaryIndex &CombinedIndex,
1371
- const StringMap<GVSummaryMapTy> &ModuleToDefinedGVSummaries,
1372
- lto::IndexWriteCallback OnWrite, bool ShouldEmitImportsFiles)
1370
+ ThinBackendProc (
1371
+ const Config &Conf, ModuleSummaryIndex &CombinedIndex,
1372
+ const DenseMap<StringRef, GVSummaryMapTy> &ModuleToDefinedGVSummaries,
1373
+ lto::IndexWriteCallback OnWrite, bool ShouldEmitImportsFiles)
1373
1374
: Conf(Conf), CombinedIndex(CombinedIndex),
1374
1375
ModuleToDefinedGVSummaries (ModuleToDefinedGVSummaries),
1375
1376
OnWrite(OnWrite), ShouldEmitImportsFiles(ShouldEmitImportsFiles) {}
@@ -1426,7 +1427,7 @@ class InProcessThinBackend : public ThinBackendProc {
1426
1427
InProcessThinBackend (
1427
1428
const Config &Conf, ModuleSummaryIndex &CombinedIndex,
1428
1429
ThreadPoolStrategy ThinLTOParallelism,
1429
- const StringMap< GVSummaryMapTy> &ModuleToDefinedGVSummaries,
1430
+ const DenseMap<StringRef, GVSummaryMapTy> &ModuleToDefinedGVSummaries,
1430
1431
AddStreamFn AddStream, FileCache Cache, lto::IndexWriteCallback OnWrite,
1431
1432
bool ShouldEmitIndexFiles, bool ShouldEmitImportsFiles)
1432
1433
: ThinBackendProc(Conf, CombinedIndex, ModuleToDefinedGVSummaries,
@@ -1548,13 +1549,15 @@ ThinBackend lto::createInProcessThinBackend(ThreadPoolStrategy Parallelism,
1548
1549
lto::IndexWriteCallback OnWrite,
1549
1550
bool ShouldEmitIndexFiles,
1550
1551
bool ShouldEmitImportsFiles) {
1551
- return [=](const Config &Conf, ModuleSummaryIndex &CombinedIndex,
1552
- const StringMap<GVSummaryMapTy> &ModuleToDefinedGVSummaries,
1553
- AddStreamFn AddStream, FileCache Cache) {
1554
- return std::make_unique<InProcessThinBackend>(
1555
- Conf, CombinedIndex, Parallelism, ModuleToDefinedGVSummaries, AddStream,
1556
- Cache, OnWrite, ShouldEmitIndexFiles, ShouldEmitImportsFiles);
1557
- };
1552
+ return
1553
+ [=](const Config &Conf, ModuleSummaryIndex &CombinedIndex,
1554
+ const DenseMap<StringRef, GVSummaryMapTy> &ModuleToDefinedGVSummaries,
1555
+ AddStreamFn AddStream, FileCache Cache) {
1556
+ return std::make_unique<InProcessThinBackend>(
1557
+ Conf, CombinedIndex, Parallelism, ModuleToDefinedGVSummaries,
1558
+ AddStream, Cache, OnWrite, ShouldEmitIndexFiles,
1559
+ ShouldEmitImportsFiles);
1560
+ };
1558
1561
}
1559
1562
1560
1563
// Given the original \p Path to an output file, replace any path
@@ -1584,7 +1587,7 @@ class WriteIndexesThinBackend : public ThinBackendProc {
1584
1587
public:
1585
1588
WriteIndexesThinBackend (
1586
1589
const Config &Conf, ModuleSummaryIndex &CombinedIndex,
1587
- const StringMap< GVSummaryMapTy> &ModuleToDefinedGVSummaries,
1590
+ const DenseMap<StringRef, GVSummaryMapTy> &ModuleToDefinedGVSummaries,
1588
1591
std::string OldPrefix, std::string NewPrefix,
1589
1592
std::string NativeObjectPrefix, bool ShouldEmitImportsFiles,
1590
1593
raw_fd_ostream *LinkedObjectsFile, lto::IndexWriteCallback OnWrite)
@@ -1632,13 +1635,15 @@ ThinBackend lto::createWriteIndexesThinBackend(
1632
1635
std::string OldPrefix, std::string NewPrefix,
1633
1636
std::string NativeObjectPrefix, bool ShouldEmitImportsFiles,
1634
1637
raw_fd_ostream *LinkedObjectsFile, IndexWriteCallback OnWrite) {
1635
- return [=](const Config &Conf, ModuleSummaryIndex &CombinedIndex,
1636
- const StringMap<GVSummaryMapTy> &ModuleToDefinedGVSummaries,
1637
- AddStreamFn AddStream, FileCache Cache) {
1638
- return std::make_unique<WriteIndexesThinBackend>(
1639
- Conf, CombinedIndex, ModuleToDefinedGVSummaries, OldPrefix, NewPrefix,
1640
- NativeObjectPrefix, ShouldEmitImportsFiles, LinkedObjectsFile, OnWrite);
1641
- };
1638
+ return
1639
+ [=](const Config &Conf, ModuleSummaryIndex &CombinedIndex,
1640
+ const DenseMap<StringRef, GVSummaryMapTy> &ModuleToDefinedGVSummaries,
1641
+ AddStreamFn AddStream, FileCache Cache) {
1642
+ return std::make_unique<WriteIndexesThinBackend>(
1643
+ Conf, CombinedIndex, ModuleToDefinedGVSummaries, OldPrefix,
1644
+ NewPrefix, NativeObjectPrefix, ShouldEmitImportsFiles,
1645
+ LinkedObjectsFile, OnWrite);
1646
+ };
1642
1647
}
1643
1648
1644
1649
Error LTO::runThinLTO (AddStreamFn AddStream, FileCache Cache,
@@ -1664,8 +1669,8 @@ Error LTO::runThinLTO(AddStreamFn AddStream, FileCache Cache,
1664
1669
1665
1670
// Collect for each module the list of function it defines (GUID ->
1666
1671
// Summary).
1667
- StringMap< GVSummaryMapTy>
1668
- ModuleToDefinedGVSummaries ( ThinLTO.ModuleMap .size ());
1672
+ DenseMap<StringRef, GVSummaryMapTy> ModuleToDefinedGVSummaries (
1673
+ ThinLTO.ModuleMap .size ());
1669
1674
ThinLTO.CombinedIndex .collectDefinedGVSummariesPerModule (
1670
1675
ModuleToDefinedGVSummaries);
1671
1676
// Create entries for any modules that didn't have any GV summaries
@@ -1682,9 +1687,9 @@ Error LTO::runThinLTO(AddStreamFn AddStream, FileCache Cache,
1682
1687
// Synthesize entry counts for functions in the CombinedIndex.
1683
1688
computeSyntheticCounts (ThinLTO.CombinedIndex );
1684
1689
1685
- StringMap< FunctionImporter::ImportMapTy> ImportLists (
1690
+ DenseMap<StringRef, FunctionImporter::ImportMapTy> ImportLists (
1686
1691
ThinLTO.ModuleMap .size ());
1687
- StringMap< FunctionImporter::ExportSetTy> ExportLists (
1692
+ DenseMap<StringRef, FunctionImporter::ExportSetTy> ExportLists (
1688
1693
ThinLTO.ModuleMap .size ());
1689
1694
StringMap<std::map<GlobalValue::GUID, GlobalValue::LinkageTypes>> ResolvedODR;
1690
1695
0 commit comments