https://github.com/artempyanykh updated https://github.com/llvm/llvm-project/pull/118625
>From c351d4aaabb25263f82c4d5293f124889b1cd35a Mon Sep 17 00:00:00 2001 From: Artem Pianykh <a...@fb.com> Date: Sat, 14 Sep 2024 16:02:51 -0700 Subject: [PATCH] [NFC][Utils] Eliminate DISubprogram set from BuildDebugInfoMDMap Summary: Previously, we'd add all SPs distinct from the cloned one into a set. Then when cloning a local scope we'd check if it's from one of those 'distinct' SPs by checking if it's in the set. We don't need to do that. We can just check against the cloned SP directly and drop the set. Test Plan: ninja check-llvm-unit check-llvm stack-info: PR: https://github.com/llvm/llvm-project/pull/118625, branch: users/artempyanykh/fast-coro-upstream/6 --- llvm/lib/Transforms/Utils/CloneFunction.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/llvm/lib/Transforms/Utils/CloneFunction.cpp b/llvm/lib/Transforms/Utils/CloneFunction.cpp index cf4b1c7a045e05..34400d45aa6e72 100644 --- a/llvm/lib/Transforms/Utils/CloneFunction.cpp +++ b/llvm/lib/Transforms/Utils/CloneFunction.cpp @@ -172,18 +172,15 @@ bool llvm::BuildDebugInfoMDMap(DenseMap<const Metadata *, TrackingMDRef> &MD, }; // Avoid cloning types, compile units, and (other) subprograms. - SmallPtrSet<const DISubprogram *, 16> MappedToSelfSPs; for (DISubprogram *ISP : DIFinder.subprograms()) { - if (ISP != SPClonedWithinModule) { + if (ISP != SPClonedWithinModule) mapToSelfIfNew(ISP); - MappedToSelfSPs.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 && MappedToSelfSPs.count(LScope->getSubprogram())) + if (LScope && LScope->getSubprogram() != SPClonedWithinModule) mapToSelfIfNew(S); } _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits