llvm-project/llvm/lib/Transforms/IPO
Vlad Tsyrklevich 6867ab7c90 [ThinLTOBitcodeWriter] Emit summaries for regular LTO modules
Summary:
Emit summaries for bitcode modules that are only destined for the
regular LTO portion of the build so they can participate in
summary-based dead stripping.

This change reduces the size of a nacl_helper build with cfi-icall
enabled by 7%, removing the majority of the overhead due to enabling
cfi-icall. The cfi-icall size increase was caused by compiling in lots
of unused code and cfi-icall generating jumptable references to unused
symbols that could no longer be removed by -Wl,-gc-sections. Increasing
the visibility of summary-based dead stripping prevented jumptable
entries being created for unused symbols from the regular LTO portion
of the build.

Reviewers: pcc

Reviewed By: pcc

Subscribers: dschuff, mehdi_amini, inglorion, eraman, llvm-commits, kcc

Differential Revision: https://reviews.llvm.org/D47594

llvm-svn: 333768
2018-06-01 15:20:47 +00:00
..
AlwaysInliner.cpp Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
ArgumentPromotion.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
BarrierNoopPass.cpp Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
BlockExtractor.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
CMakeLists.txt Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
CalledValuePropagation.cpp [CalledValuePropagation] Just use a sorted vector instead of a set. 2018-05-30 19:31:11 +00:00
ConstantMerge.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-10 22:49:55 +00:00
CrossDSOCFI.cpp Don't call skipModule for CFI lowering passes. 2018-04-12 22:04:11 +00:00
DeadArgumentElimination.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
ElimAvailExtern.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-10 22:49:55 +00:00
ExtractGV.cpp Remove @brief commands from doxygen comments, too. 2018-05-01 16:10:38 +00:00
ForceFunctionAttrs.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
FunctionAttrs.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
FunctionImport.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
GlobalDCE.cpp Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
GlobalOpt.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
GlobalSplit.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-10 22:49:55 +00:00
IPConstantPropagation.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
IPO.cpp Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
InferFunctionAttrs.cpp Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
InlineSimple.cpp Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
Inliner.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
Internalize.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
LLVMBuild.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
LoopExtractor.cpp Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
LowerTypeTests.cpp [LowerTypeTests] Discard extern_weak linkage for definitions 2018-05-30 22:39:52 +00:00
MergeFunctions.cpp Remove DEBUG macro. 2018-05-23 15:09:29 +00:00
PartialInlining.cpp [STLExtras] Add distance() for ranges, pred_size(), and succ_size() 2018-05-10 23:01:54 +00:00
PassManagerBuilder.cpp [PM/LoopUnswitch] When using the new SimpleLoopUnswitch pass, schedule 2018-05-30 02:46:45 +00:00
PruneEH.cpp Fix a couple of layering violations in Transforms 2018-03-21 22:34:23 +00:00
SCCP.cpp Revert r333740: IPSCCP] Use PredicateInfo to propagate facts from cmp. 2018-06-01 12:58:43 +00:00
SampleProfile.cpp [Dominators] Add PDT constructor from Function 2018-05-23 17:29:21 +00:00
StripDeadPrototypes.cpp
StripSymbols.cpp Fix a couple of layering violations in Transforms 2018-03-21 22:34:23 +00:00
SyntheticCountsPropagation.cpp [SyntheticCounts] Rewrite the code using only graph traits. 2018-01-25 22:02:29 +00:00
ThinLTOBitcodeWriter.cpp [ThinLTOBitcodeWriter] Emit summaries for regular LTO modules 2018-06-01 15:20:47 +00:00
WholeProgramDevirt.cpp Extend the GlobalObject metadata interface 2018-05-31 13:29:58 +00:00