From fc7c4be59a276584b9ed0a562e677b3826170088 Mon Sep 17 00:00:00 2001 From: Arthur Eubanks Date: Tue, 21 Oct 2025 20:58:27 +0000 Subject: [PATCH] PassWrapper: Access GlobalValueSummaryInfo::SummaryList via getter for LLVM 22+ https://github.com/llvm/llvm-project/pull/164355 makes SummaryList private and provides a getter method. @rustbot label llvm-main --- compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp index 8d9c4b48b5c4..b571a060594c 100644 --- a/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp +++ b/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp @@ -1220,9 +1220,14 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules, size_t num_modules, // being lifted from `lib/LTO/LTO.cpp` as well DenseMap PrevailingCopy; for (auto &I : Ret->Index) { - if (I.second.SummaryList.size() > 1) +#if LLVM_VERSION_GE(22, 0) + const auto &SummaryList = I.second.getSummaryList(); +#else + const auto &SummaryList = I.second.SummaryList; +#endif + if (SummaryList.size() > 1) PrevailingCopy[I.first] = - getFirstDefinitionForLinker(I.second.SummaryList); + getFirstDefinitionForLinker(SummaryList); } auto isPrevailing = [&](GlobalValue::GUID GUID, const GlobalValueSummary *S) { const auto &Prevailing = PrevailingCopy.find(GUID); @@ -1253,7 +1258,12 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules, size_t num_modules, // linkage will stay as external, and internal will stay as internal. std::set ExportedGUIDs; for (auto &List : Ret->Index) { - for (auto &GVS : List.second.SummaryList) { +#if LLVM_VERSION_GE(22, 0) + const auto &SummaryList = List.second.getSummaryList(); +#else + const auto &SummaryList = List.second.SummaryList; +#endif + for (auto &GVS : SummaryList) { if (GlobalValue::isLocalLinkage(GVS->linkage())) continue; auto GUID = GVS->getOriginalName();