From 7dc6aec75f1498c56f2893dc7d1feb2965029dca Mon Sep 17 00:00:00 2001 From: mingmingl Date: Fri, 17 May 2024 16:59:43 -0700 Subject: [PATCH 1/2] [ThinLTO]Sort imported GUIDs before cache key update --- llvm/lib/LTO/LTO.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/llvm/lib/LTO/LTO.cpp b/llvm/lib/LTO/LTO.cpp index 53060df7f503e..afc687a02d965 100644 --- a/llvm/lib/LTO/LTO.cpp +++ b/llvm/lib/LTO/LTO.cpp @@ -199,13 +199,21 @@ void llvm::computeLTOCacheKey( [](const ImportModule &Lhs, const ImportModule &Rhs) -> bool { return Lhs.getHash() < Rhs.getHash(); }); + std::vector ImportedGUIDs; for (const ImportModule &Entry : ImportModulesVector) { auto ModHash = Entry.getHash(); Hasher.update(ArrayRef((uint8_t *)&ModHash[0], sizeof(ModHash))); AddUint64(Entry.getFunctions().size()); + + ImportedGUIDs.clear(); for (auto &Fn : Entry.getFunctions()) - AddUint64(Fn); + ImportedGUIDs.push_back(Fn); + + llvm::sort(ImportedGUIDs); + + for (auto &GUID : ImportedGUIDs) + AddUint64(GUID); } // Include the hash for the resolved ODR. From 927e6d28a36dc07b4ac31ad5f1aa1482f4e4b478 Mon Sep 17 00:00:00 2001 From: mingmingl Date: Fri, 17 May 2024 17:47:40 -0700 Subject: [PATCH 2/2] group lines --- llvm/lib/LTO/LTO.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/llvm/lib/LTO/LTO.cpp b/llvm/lib/LTO/LTO.cpp index afc687a02d965..4331b68580479 100644 --- a/llvm/lib/LTO/LTO.cpp +++ b/llvm/lib/LTO/LTO.cpp @@ -209,9 +209,7 @@ void llvm::computeLTOCacheKey( ImportedGUIDs.clear(); for (auto &Fn : Entry.getFunctions()) ImportedGUIDs.push_back(Fn); - llvm::sort(ImportedGUIDs); - for (auto &GUID : ImportedGUIDs) AddUint64(GUID); }