@@ -1554,6 +1554,12 @@ memprof::AllMemProfData IndexedMemProfReader::getAllMemProfData() const {
15541554 }
15551555 // Populate the data access profiles for yaml output.
15561556 if (DataAccessProfileData != nullptr ) {
1557+ AllMemProfData.YamlifiedDataAccessProfiles .Records .reserve (
1558+ DataAccessProfileData->getRecords ().size ());
1559+ AllMemProfData.YamlifiedDataAccessProfiles .KnownColdSymbols .reserve (
1560+ DataAccessProfileData->getKnownColdSymbols ().size ());
1561+ AllMemProfData.YamlifiedDataAccessProfiles .KnownColdStrHashes .reserve (
1562+ DataAccessProfileData->getKnownColdHashes ().size ());
15571563 for (const auto &[SymHandleRef, RecordRef] :
15581564 DataAccessProfileData->getRecords ())
15591565 AllMemProfData.YamlifiedDataAccessProfiles .Records .push_back (
@@ -1565,6 +1571,19 @@ memprof::AllMemProfData IndexedMemProfReader::getAllMemProfData() const {
15651571 for (uint64_t Hash : DataAccessProfileData->getKnownColdHashes ())
15661572 AllMemProfData.YamlifiedDataAccessProfiles .KnownColdStrHashes .push_back (
15671573 Hash);
1574+ llvm::stable_sort (AllMemProfData.YamlifiedDataAccessProfiles .Records ,
1575+ [](const llvm::memprof::DataAccessProfRecord &lhs,
1576+ const llvm::memprof::DataAccessProfRecord &rhs) {
1577+ return lhs.AccessCount > rhs.AccessCount ;
1578+ });
1579+ llvm::stable_sort (
1580+ AllMemProfData.YamlifiedDataAccessProfiles .KnownColdSymbols ,
1581+ [](const std::string &lhs, const std::string &rhs) {
1582+ return lhs < rhs;
1583+ });
1584+ llvm::stable_sort (
1585+ AllMemProfData.YamlifiedDataAccessProfiles .KnownColdStrHashes ,
1586+ [](const uint64_t &lhs, const uint64_t &rhs) { return lhs < rhs; });
15681587 }
15691588 return AllMemProfData;
15701589}
0 commit comments