diff options
author | Teresa Johnson <tejohnson@google.com> | 2019-12-26 09:31:43 -0800 |
---|---|---|
committer | Teresa Johnson <tejohnson@google.com> | 2020-01-23 13:19:56 -0800 |
commit | 9c2eb220edd5e831a17bfbde65dcc49e402d7540 (patch) | |
tree | 5819aaecc168ea09ca8cafb8fcc4af80ef21db43 /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | |
parent | cc14de88da27a8178976972bdc8211c31f7ca9ae (diff) | |
download | llvm-9c2eb220edd5e831a17bfbde65dcc49e402d7540.zip llvm-9c2eb220edd5e831a17bfbde65dcc49e402d7540.tar.gz llvm-9c2eb220edd5e831a17bfbde65dcc49e402d7540.tar.bz2 |
[ThinLTO] Summarize vcall_visibility metadata
Summary:
Second patch in series to support Safe Whole Program Devirtualization
Enablement, see RFC here:
http://lists.llvm.org/pipermail/llvm-dev/2019-December/137543.html
Summarize vcall_visibility metadata in ThinLTO global variable summary.
Depends on D71907.
Reviewers: pcc, evgeny777, steven_wu
Subscribers: mehdi_amini, Prazek, inglorion, hiraditya, dexonsmith, arphaman, ostannard, llvm-commits, cfe-commits, davidxl
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D71911
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp index c7a0984..3dddf4b7 100644 --- a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp +++ b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp @@ -600,8 +600,9 @@ static void computeVariableSummary(ModuleSummaryIndex &Index, !V.hasComdat() && !V.hasAppendingLinkage() && !V.isInterposable() && !V.hasAvailableExternallyLinkage() && !V.hasDLLExportStorageClass(); bool Constant = V.isConstant(); - GlobalVarSummary::GVarFlags VarFlags( - CanBeInternalized, Constant ? false : CanBeInternalized, Constant); + GlobalVarSummary::GVarFlags VarFlags(CanBeInternalized, + Constant ? false : CanBeInternalized, + Constant, V.getVCallVisibility()); auto GVarSummary = std::make_unique<GlobalVarSummary>(Flags, VarFlags, RefEdges.takeVector()); if (NonRenamableLocal) @@ -722,7 +723,8 @@ ModuleSummaryIndex llvm::buildModuleSummaryIndex( std::make_unique<GlobalVarSummary>( GVFlags, GlobalVarSummary::GVarFlags( - false, false, cast<GlobalVariable>(GV)->isConstant()), + false, false, cast<GlobalVariable>(GV)->isConstant(), + GlobalObject::VCallVisibilityPublic), ArrayRef<ValueInfo>{}); Index.addGlobalValueSummary(*GV, std::move(Summary)); } |