1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/lib/Transforms/IPO
Vlad Tsyrklevich 7f72d85310 LowerTypeTests: Add limited support for aliases
Summary:
LowerTypeTests moves some function definitions from individual object
files to the merged module, leaving a stub to be called in the merged
module's jump table. If an alias was pointing to such a function
definition LowerTypeTests would fail because the alias would be left
without a definition to point to.

This change 1) emits information about aliases to the ThinLTO summary,
2) replaces aliases pointing to function definitions that are moved to
the merged module with function declarations, and 3) re-emits those
aliases in the merged module pointing to the correct function
definitions.

The patch does not correctly fix all possible mis-uses of aliases in
LowerTypeTests. For example, it does not handle aliases with a different
type from the pointed to function.

The addition of alias data increases the size of Chrome build artifacts
by less than 1%.

Reviewers: pcc

Reviewed By: pcc

Subscribers: mehdi_amini, eraman, mgrang, llvm-commits, eugenis, kcc

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

llvm-svn: 322139
2018-01-10 00:00:51 +00:00
..
AlwaysInliner.cpp AlwaysInliner: Alow setting InsertLifetime in the new-style pass 2018-01-08 22:07:42 +00:00
ArgumentPromotion.cpp ArgPromotion: Allow setting MaxElements in the new-style pass 2018-01-08 21:13:35 +00:00
BarrierNoopPass.cpp
CalledValuePropagation.cpp Attempt to unbreak the expensive-checks-win bot 2017-10-25 22:46:34 +00:00
CMakeLists.txt Add a pass to generate synthetic function entry counts. 2018-01-09 19:39:35 +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 [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-10 22:49:55 +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 Modify ModRefInfo values using static inline method abstractions [NFC]. 2017-12-05 20:12:23 +00:00
FunctionImport.cpp [ThinLTO] Remove unused code 2017-12-18 10:53:45 +00:00
GlobalDCE.cpp Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
GlobalOpt.cpp Make DIExpression::createFragmentExpression() return an Optional. 2017-11-07 00:45:34 +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 Consistently use ModuleAnalysisManager 2016-08-09 00:28:38 +00:00
IPConstantPropagation.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
IPO.cpp Add CalledValuePropagation pass 2017-10-25 13:40:08 +00:00
LLVMBuild.txt IPO: Add missing build dep. 2017-05-01 20:57:20 +00:00
LoopExtractor.cpp Use a BumpPtrAllocator for Loop objects 2017-09-28 02:45:42 +00:00
LowerTypeTests.cpp LowerTypeTests: Add limited support for aliases 2018-01-10 00:00:51 +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 Add hasProfileData() to check if a function has profile data. NFC. 2017-12-22 01:33:52 +00:00
PassManagerBuilder.cpp [SimplifyCFG] don't sink common insts too soon (PR34603) 2017-12-14 22:05:20 +00:00
PruneEH.cpp Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
SampleProfile.cpp Add a pass to generate synthetic function entry counts. 2018-01-09 19:39:35 +00:00
StripDeadPrototypes.cpp [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
StripSymbols.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SyntheticCountsPropagation.cpp Add a pass to generate synthetic function entry counts. 2018-01-09 19:39:35 +00:00
ThinLTOBitcodeWriter.cpp LowerTypeTests: Add limited support for aliases 2018-01-10 00:00:51 +00:00
WholeProgramDevirt.cpp WholeProgramDevirt: Simplify ORE getter mechanism for old PM. NFCI. 2018-01-05 00:27:51 +00:00