llvm-project/llvm/lib/Transforms/IPO
Vedant Kumar 3a63fb316c Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist"
Make personality functions, prefix data, and prologue data hungoff
operands of Function.

This is based on the email thread "[RFC] Clean up the way we store
optional Function data" on llvm-dev.

Thanks to sanjoyd, majnemer, rnk, loladiro, and dexonsmith for feedback!

Includes a fix to scrub value subclass data in dropAllReferences. Does not
use binary literals.

Differential Revision: http://reviews.llvm.org/D13829

llvm-svn: 256095
2015-12-19 08:52:49 +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 Cross-DSO control flow integrity (LLVM part). 2015-12-15 23:00:08 +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 DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +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
FunctionAttrs.cpp Revert "[FunctionAttrs] Remove redundant assignment." 2015-11-20 19:17:10 +00:00
FunctionImport.cpp [ThinLTO] Metadata linking for imported functions 2015-12-17 17:14:09 +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 [GlobalOpt] Localize some globals that have non-instruction users 2015-11-19 18:04:33 +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 Cross-DSO control flow integrity (LLVM part). 2015-12-15 23:00:08 +00:00
InlineAlways.cpp [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
InlineSimple.cpp [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
Inliner.cpp Revert r252990. 2015-11-13 01:44:32 +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 Fix Clang-tidy modernize-use-nullptr warnings in source directories and generated files; other minor cleanups. 2015-10-06 23:24:35 +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 Cross-DSO control flow integrity (LLVM part). 2015-12-15 23:00:08 +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