summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
-rw-r--r--llvm/lib/Analysis/ModuleSummaryAnalysis.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
index cb735562fa6..886dac8314e 100644
--- a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
+++ b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
@@ -403,6 +403,12 @@ ModuleSummaryIndex llvm::buildModuleSummaryIndex(
CantBePromoted);
}
+ // Set live flag for all personality functions. That allows to
+ // preserve them during DCE.
+ for (const llvm::Function &F : M)
+ if (!F.isDeclaration() && F.hasPersonalityFn())
+ setLiveRoot(Index, F.getPersonalityFn()->getName());
+
// Compute summaries for all variables defined in module, and save in the
// index.
for (const GlobalVariable &G : M.globals()) {
OpenPOWER on IntegriCloud