https://github.com/artempyanykh updated https://github.com/llvm/llvm-project/pull/129151
>From 7c2cbfc200504b8b827a2b3f4a9b8cac99e7165c Mon Sep 17 00:00:00 2001 From: Artem Pianykh <a...@fb.com> Date: Tue, 25 Feb 2025 13:00:47 -0800 Subject: [PATCH] [NFC][Cloning] Remove now unused FindDebugInfoToIdentityMap Summary: This function is no longer needed. Test Plan: ninja check-llvm-unit stack-info: PR: https://github.com/llvm/llvm-project/pull/129151, branch: users/artempyanykh/fast-coro-upstream-part2-take2/9 --- llvm/include/llvm/Transforms/Utils/Cloning.h | 19 ----------- llvm/lib/Transforms/Utils/CloneFunction.cpp | 34 -------------------- 2 files changed, 53 deletions(-) diff --git a/llvm/include/llvm/Transforms/Utils/Cloning.h b/llvm/include/llvm/Transforms/Utils/Cloning.h index 2252dda0b9aad..ae00c16e7eada 100644 --- a/llvm/include/llvm/Transforms/Utils/Cloning.h +++ b/llvm/include/llvm/Transforms/Utils/Cloning.h @@ -244,25 +244,6 @@ DISubprogram *CollectDebugInfoForCloning(const Function &F, CloneFunctionChangeType Changes, DebugInfoFinder &DIFinder); -/// Based on \p Changes and \p DIFinder return debug info that needs to be -/// identity mapped during Metadata cloning. -/// -/// NOTE: Such \a MetadataSetTy can be used by \a CloneFunction* to directly -/// specify metadata that should be identity mapped (and hence not cloned). The -/// metadata will be identity mapped in \a ValueToValueMapTy on first use. There -/// are several reasons for doing it this way rather than eagerly identity -/// mapping metadata nodes in a \a ValueMap: -/// 1. Mapping metadata is not cheap, particularly because of tracking. -/// 2. When cloning a Function we identity map lots of global module-level -/// metadata to avoid cloning it, while only a fraction of it is actually -/// used by the function. Mapping on first use is a lot faster for modules -/// with meaningful amount of debug info. -/// 3. Eagerly identity mapping metadata makes it harder to cache module-level -/// data (e.g. a set of metadata nodes in a \a DICompileUnit). -MetadataSetTy FindDebugInfoToIdentityMap(CloneFunctionChangeType Changes, - DebugInfoFinder &DIFinder, - DISubprogram *SPClonedWithinModule); - /// This class captures the data input to the InlineFunction call, and records /// the auxiliary results produced by it. class InlineFunctionInfo { diff --git a/llvm/lib/Transforms/Utils/CloneFunction.cpp b/llvm/lib/Transforms/Utils/CloneFunction.cpp index 8080dca09be00..11033aeec7dda 100644 --- a/llvm/lib/Transforms/Utils/CloneFunction.cpp +++ b/llvm/lib/Transforms/Utils/CloneFunction.cpp @@ -189,40 +189,6 @@ DISubprogram *llvm::CollectDebugInfoForCloning(const Function &F, return SPClonedWithinModule; } -MetadataSetTy -llvm::FindDebugInfoToIdentityMap(CloneFunctionChangeType Changes, - DebugInfoFinder &DIFinder, - DISubprogram *SPClonedWithinModule) { - if (Changes >= CloneFunctionChangeType::DifferentModule) - return {}; - - if (DIFinder.subprogram_count() == 0) - assert(!SPClonedWithinModule && - "Subprogram should be in DIFinder->subprogram_count()..."); - - MetadataSetTy MD; - - // Avoid cloning types, compile units, and (other) subprograms. - for (DISubprogram *ISP : DIFinder.subprograms()) - if (ISP != SPClonedWithinModule) - MD.insert(ISP); - - // If a subprogram isn't going to be cloned skip its lexical blocks as well. - for (DIScope *S : DIFinder.scopes()) { - auto *LScope = dyn_cast<DILocalScope>(S); - if (LScope && LScope->getSubprogram() != SPClonedWithinModule) - MD.insert(S); - } - - for (DICompileUnit *CU : DIFinder.compile_units()) - MD.insert(CU); - - for (DIType *Type : DIFinder.types()) - MD.insert(Type); - - return MD; -} - void llvm::CloneFunctionMetadataInto(Function &NewFunc, const Function &OldFunc, ValueToValueMapTy &VMap, RemapFlags RemapFlag, _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits