aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.h
diff options
context:
space:
mode:
authorAlexandros Lamprineas <alexandros.lamprineas@arm.com>2024-03-20 16:49:51 +0000
committerGitHub <noreply@github.com>2024-03-20 16:49:51 +0000
commit9cb5004209323d6fa8af8c41e456818c20585984 (patch)
tree5769c8b2dfe51c6e4fac41dcf719b24a5519e6f9 /clang/lib/CodeGen/CodeGenModule.h
parenta6a6066290679f23f2bd6b27afc7a06aab07590f (diff)
downloadllvm-9cb5004209323d6fa8af8c41e456818c20585984.zip
llvm-9cb5004209323d6fa8af8c41e456818c20585984.tar.gz
llvm-9cb5004209323d6fa8af8c41e456818c20585984.tar.bz2
Reland [FMV] Emit the resolver along with the default version definit… (#85923)
…ion. This was reverted because the resolver didn't look as expected in one of the tests. I believe it had some interaction with #84146. I have now regenerated it using -target-feature -fp-armv8.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.h')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.h b/clang/lib/CodeGen/CodeGenModule.h
index ec34680f..1cc4477 100644
--- a/clang/lib/CodeGen/CodeGenModule.h
+++ b/clang/lib/CodeGen/CodeGenModule.h
@@ -348,6 +348,8 @@ private:
/// yet.
llvm::DenseMap<StringRef, GlobalDecl> DeferredDecls;
+ llvm::StringSet<llvm::BumpPtrAllocator> DeferredResolversToEmit;
+
/// This is a list of deferred decls which we have seen that *are* actually
/// referenced. These get code generated when the module is done.
std::vector<GlobalDecl> DeferredDeclsToEmit;
@@ -1588,6 +1590,9 @@ private:
llvm::AttributeList ExtraAttrs = llvm::AttributeList(),
ForDefinition_t IsForDefinition = NotForDefinition);
+ // Adds a declaration to the list of multi version functions if not present.
+ void AddDeferredMultiVersionResolverToEmit(GlobalDecl GD);
+
// References to multiversion functions are resolved through an implicitly
// defined resolver function. This function is responsible for creating
// the resolver symbol for the provided declaration. The value returned