diff options
author | Sriraman Tallam <tmsriram@google.com> | 2020-05-07 18:18:37 -0700 |
---|---|---|
committer | Sriraman Tallam <tmsriram@google.com> | 2020-05-07 18:18:37 -0700 |
commit | e8147ad8222602d16728c370d5fac086260d058c (patch) | |
tree | 3c7ebd53c547834dfcb86f5344a75ce58a95da9a /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | f5224d437eace9593b64ef2eff501df397bce6a8 (diff) | |
download | llvm-e8147ad8222602d16728c370d5fac086260d058c.zip llvm-e8147ad8222602d16728c370d5fac086260d058c.tar.gz llvm-e8147ad8222602d16728c370d5fac086260d058c.tar.bz2 |
Uniuqe Names for Internal Linkage Symbols.
This is a standalone patch and this would help Propeller do a better job of code
layout as it can accurately attribute the profiles to the right internal linkage
function.
This also helps SampledFDO/AutoFDO correctly associate sampled profiles to the
right internal function. Currently, if there is more than one internal symbol
foo, their profiles are aggregated by SampledFDO.
This patch adds a new clang option, -funique-internal-funcnames, to generate
unique names for functions with internal linkage. This patch appends the md5
hash of the module name to the function symbol as a best effort to generate a
unique name for symbols with internal linkage.
Differential Revision: https://reviews.llvm.org/D73307
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 18872f9..01f0673 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -957,6 +957,8 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, Opts.DataSections = Args.hasArg(OPT_fdata_sections); Opts.StackSizeSection = Args.hasArg(OPT_fstack_size_section); Opts.UniqueSectionNames = !Args.hasArg(OPT_fno_unique_section_names); + Opts.UniqueInternalLinkageNames = + Args.hasArg(OPT_funique_internal_linkage_names); Opts.MergeFunctions = Args.hasArg(OPT_fmerge_functions); |