llvm-project/llvm/lib/Transforms/IPO
Teresa Johnson a1080ee6f0 [ThinLTO] Delay metadata materializtion in function importer
The function importer was still materializing metadata when modules were
loaded for function importing. We only want to materialize it when we
are going to invoke the metadata linking postpass. Materializing it
before function importing is not only unnecessary, but also causes
metadata referenced by imported functions to be mapped in early, and
then not connected to the rest of the module level metadata when it is
ultimately linked in.

Augmented the test case to specifically check for the metadata being
properly connected, which it wasn't before this fix.

llvm-svn: 257171
2016-01-08 14:17:41 +00:00
..
ArgumentPromotion.cpp DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
BarrierNoopPass.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
CMakeLists.txt [attrs] Extract the pure inference of function attributes into 2015-12-27 08:41:34 +00:00
ConstantMerge.cpp IPO: Remove implicit ilist iterator conversions, NFC 2015-10-13 17:51:03 +00:00
CrossDSOCFI.cpp Remove one of the void casts used to suppress unused variable warning. 2015-12-15 23:47:17 +00:00
DeadArgumentElimination.cpp [OperandBundles] Have DeadArgElim play nice with operand bundles 2015-12-23 09:58:36 +00:00
ElimAvailExtern.cpp Disallow aliases to available_externally. 2015-11-26 19:22:59 +00:00
ExtractGV.cpp IPO: Remove implicit ilist iterator conversions, NFC 2015-10-13 17:51:03 +00:00
ForceFunctionAttrs.cpp Fix option desc in FunctionAttrs; NFC 2016-01-06 18:18:16 +00:00
FunctionAttrs.cpp [attrs] Split the late-revisit pattern for deducing norecurse in 2016-01-08 10:55:52 +00:00
FunctionImport.cpp [ThinLTO] Delay metadata materializtion in function importer 2016-01-08 14:17:41 +00:00
GlobalDCE.cpp Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist" 2015-12-19 08:52:49 +00:00
GlobalOpt.cpp Also add unnamed_addr to functions. 2015-12-22 20:43:30 +00:00
IPConstantPropagation.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
IPO.cpp [attrs] Split the late-revisit pattern for deducing norecurse in 2016-01-08 10:55:52 +00:00
InferFunctionAttrs.cpp [BasicAA] Remove special casing of memset_pattern16 in favor of generic attribute inference 2016-01-06 04:53:16 +00:00
InlineAlways.cpp Refactor inline costs analysis by removing the InlineCostAnalysis class 2015-12-28 20:28:19 +00:00
InlineSimple.cpp Refactor inline costs analysis by removing the InlineCostAnalysis class 2015-12-28 20:28:19 +00:00
Inliner.cpp Refactor inline costs analysis by removing the InlineCostAnalysis class 2015-12-28 20:28:19 +00:00
Internalize.cpp IPO: Remove implicit ilist iterator conversions, NFC 2015-10-13 17:51:03 +00:00
LLVMBuild.txt [PGO] Revert revision r254021,r254028,r254035 2015-11-24 23:49:08 +00:00
LoopExtractor.cpp LPM: Make callers of LPM.deleteLoopFromQueue update LoopInfo directly. NFC 2015-12-16 18:40:20 +00:00
LowerBitSets.cpp [cfi] Fix LowerBitSets on 32-bit targets. 2015-12-21 22:14:04 +00:00
Makefile
MergeFunctions.cpp [MergeFunctions] Use II instead of CI for InvokeInst; NFC 2015-12-14 19:11:45 +00:00
PartialInlining.cpp IPO: Remove implicit ilist iterator conversions, NFC 2015-10-13 17:51:03 +00:00
PassManagerBuilder.cpp [attrs] Split the late-revisit pattern for deducing norecurse in 2016-01-08 10:55:52 +00:00
PruneEH.cpp PruneEH pass incorrectly reports that a change was made 2015-12-11 16:30:26 +00:00
SampleProfile.cpp SamplePGO - Reduce memory utilization by 10x. 2015-12-11 23:21:38 +00:00
StripDeadPrototypes.cpp [PM] Port StripDeadPrototypes to the new pass manager 2015-10-30 23:28:12 +00:00
StripSymbols.cpp DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00