diff options
author | Artem Pianykh <artem.pyanykh@gmail.com> | 2025-03-12 23:33:12 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-12 23:33:12 +0000 |
commit | 726ffd361cd932ff3b44e6a6b68bf1dbfd7802e1 (patch) | |
tree | ef186e79c4d70e5f5ec37c53194f9480f1bd9c91 /llvm/lib/Transforms/Utils/CloneFunction.cpp | |
parent | 98c279a3ed202aecae79227317e8a243109c66e6 (diff) | |
download | llvm-726ffd361cd932ff3b44e6a6b68bf1dbfd7802e1.zip llvm-726ffd361cd932ff3b44e6a6b68bf1dbfd7802e1.tar.gz llvm-726ffd361cd932ff3b44e6a6b68bf1dbfd7802e1.tar.bz2 |
[NFC][Cloning] Replace IdentityMD set with a predicate in ValueMapper (#129147)
Summary:
We used the set only to check if it contains certain metadata nodes.
Replacing the set with a predicate makes the intention clearer and the
API more general.
Test Plan:
ninja check-all
Diffstat (limited to 'llvm/lib/Transforms/Utils/CloneFunction.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/CloneFunction.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Utils/CloneFunction.cpp b/llvm/lib/Transforms/Utils/CloneFunction.cpp index dd1b4fe..502c489 100644 --- a/llvm/lib/Transforms/Utils/CloneFunction.cpp +++ b/llvm/lib/Transforms/Utils/CloneFunction.cpp @@ -204,7 +204,7 @@ void llvm::CloneFunctionMetadataInto(Function &NewFunc, const Function &OldFunc, RemapFlags RemapFlag, ValueMapTypeRemapper *TypeMapper, ValueMaterializer *Materializer, - const MetadataSetTy *IdentityMD) { + const MetadataPredicate *IdentityMD) { SmallVector<std::pair<unsigned, MDNode *>, 1> MDs; OldFunc.getAllMetadata(MDs); for (auto MD : MDs) { @@ -221,7 +221,7 @@ void llvm::CloneFunctionBodyInto(Function &NewFunc, const Function &OldFunc, ClonedCodeInfo *CodeInfo, ValueMapTypeRemapper *TypeMapper, ValueMaterializer *Materializer, - const MetadataSetTy *IdentityMD) { + const MetadataPredicate *IdentityMD) { if (OldFunc.isDeclaration()) return; @@ -328,8 +328,10 @@ void llvm::CloneFunctionInto(Function *NewFunc, const Function *OldFunc, DISubprogram *SPClonedWithinModule = CollectDebugInfoForCloning(*OldFunc, Changes, DIFinder); - MetadataSetTy IdentityMD = - FindDebugInfoToIdentityMap(Changes, DIFinder, SPClonedWithinModule); + MetadataPredicate IdentityMD = + [MDSet = + FindDebugInfoToIdentityMap(Changes, DIFinder, SPClonedWithinModule)]( + const Metadata *MD) { return MDSet.contains(MD); }; // Cloning is always a Module level operation, since Metadata needs to be // cloned. |