teak-llvm/llvm/lib/Transforms/IPO
Vlad Tsyrklevich aab6000684 Reland r327041: [ThinLTO] Keep available_externally symbols live
Summary:
This change fixes PR36483. The bug was originally introduced by a change
that marked non-prevailing symbols dead. This broke LowerTypeTests
handling of available_externally functions, which are non-prevailing.
LowerTypeTests uses liveness information to avoid emitting thunks for
unused functions.

Marking available_externally functions dead is incorrect, the functions
are used though the function definitions are not. This change keeps them
live, and lets the EliminateAvailableExternally/GlobalDCE passes remove
them later instead.

(Reland with a suspected fix for a unit test failure I haven't been able
to reproduce locally)

Reviewers: pcc, tejohnson

Reviewed By: tejohnson

Subscribers: grimar, mehdi_amini, inglorion, eraman, llvm-commits

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

llvm-svn: 327360
2018-03-13 05:08:48 +00:00
..
AlwaysInliner.cpp AlwaysInliner: Alow setting InsertLifetime in the new-style pass 2018-01-08 22:07:42 +00:00
ArgumentPromotion.cpp [ArgumentPromotion] don't break musttail invariant PR36543 2018-03-02 00:59:27 +00:00
BarrierNoopPass.cpp
BlockExtractor.cpp BlockExtractor: Don’t delete functions directly 2018-03-12 22:28:18 +00:00
CalledValuePropagation.cpp Attempt to unbreak the expensive-checks-win bot 2017-10-25 22:46:34 +00:00
CMakeLists.txt [llvm-extract] Support extracting basic blocks 2018-01-23 21:51:34 +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 Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
DeadArgumentElimination.cpp [DAE] don't remove args of musttail target/caller 2018-03-01 00:09:35 +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 redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
ForceFunctionAttrs.cpp Hardware-assisted AddressSanitizer (llvm part). 2017-12-09 00:21:41 +00:00
FunctionAttrs.cpp [FunctionAttrs][ArgumentPromotion][GlobalOpt] Disable some optimisations passes for naked functions 2018-02-22 14:42:08 +00:00
FunctionImport.cpp Reland r327041: [ThinLTO] Keep available_externally symbols live 2018-03-13 05:08:48 +00:00
GlobalDCE.cpp Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
GlobalOpt.cpp [GlobalOpt] don't change CC of musttail calle(e|r) 2018-02-28 22:28:44 +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
InferFunctionAttrs.cpp Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
Inliner.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-19 21:21:30 +00:00
InlineSimple.cpp Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
Internalize.cpp
IPConstantPropagation.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
IPO.cpp [llvm-extract] Support extracting basic blocks 2018-01-23 21:51:34 +00:00
LLVMBuild.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
LoopExtractor.cpp [llvm-extract] Support extracting basic blocks 2018-01-23 21:51:34 +00:00
LowerTypeTests.cpp Use branch funnels for virtual calls when retpoline mitigation is enabled. 2018-03-09 19:11:44 +00:00
MergeFunctions.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-19 21:21:30 +00:00
PartialInlining.cpp [PartialInlining] Use isInlineViable to detect constructs preventing inlining. 2018-03-10 14:53:44 +00:00
PassManagerBuilder.cpp Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
PruneEH.cpp Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
SampleProfile.cpp [SampleProf] NFC. Expose reusable functionality in SampleProfile. 2018-02-22 06:42:57 +00:00
StripDeadPrototypes.cpp
StripSymbols.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SyntheticCountsPropagation.cpp [SyntheticCounts] Rewrite the code using only graph traits. 2018-01-25 22:02:29 +00:00
ThinLTOBitcodeWriter.cpp Pass a module reference to CloneModule. 2018-02-14 19:50:40 +00:00
WholeProgramDevirt.cpp Use branch funnels for virtual calls when retpoline mitigation is enabled. 2018-03-09 19:11:44 +00:00