llvm-project/llvm/lib/Transforms/IPO
Johannes Doerfert 36872b5db9 Enable IPConstantPropagation to work with abstract call sites
This modification of the currently unused inter-procedural constant
propagation pass (IPConstantPropagation) shows how abstract call sites
enable optimization of callback calls alongside direct and indirect
calls. Through minimal changes, mostly dealing with the partial mapping
of callbacks, inter-procedural constant propagation was enabled for
callbacks, e.g., OpenMP runtime calls or pthreads_create.

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

llvm-svn: 351628
2019-01-19 05:19:12 +00:00
..
AlwaysInliner.cpp Enrich inline messages 2018-08-05 14:53:08 +00:00
ArgumentPromotion.cpp Only promote args when function attributes are compatible 2019-01-16 05:15:31 +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 Hot cold splitting pass 2018-09-07 15:03:49 +00:00
CalledValuePropagation.cpp [CVP] Handle instructions with no user. No need to create CVPLattice state. This handles terminator instructions and more. 2018-09-17 15:28:01 +00:00
ConstantMerge.cpp Re-commit "[NFC] More ConstantMerge refactoring" 2018-08-10 22:41:09 +00:00
CrossDSOCFI.cpp Don't call skipModule for CFI lowering passes. 2018-04-12 22:04:11 +00:00
DeadArgumentElimination.cpp [IPO][AVR] Create new Functions in the default address space specified in the data layout 2018-12-18 09:52:52 +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 [IPO][AVR] Create new Functions in the default address space specified in the data layout 2018-12-18 09:52:52 +00:00
ForceFunctionAttrs.cpp [x86/SLH] Add a real Clang flag and LLVM IR attribute for Speculative 2018-09-04 12:38:00 +00:00
FunctionAttrs.cpp [CallSite removal] Migrate all Alias Analysis APIs to use the newly 2019-01-07 05:42:51 +00:00
FunctionImport.cpp [ThinLTO] Scan all variants of vague symbol for reachability. 2019-01-02 23:18:20 +00:00
GlobalDCE.cpp GlobalDCE: Teach isEmptyFunction() to ignore debug intrinsics. 2018-11-16 17:47:21 +00:00
GlobalOpt.cpp [DebugInfo][GlobalOpt] Fix -debugify for globalopt shrinking globals to booleans. 2018-10-23 16:35:51 +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
HotColdSplitting.cpp [HotColdSplit] Mark inherently cold functions as such 2019-01-19 02:38:47 +00:00
IPConstantPropagation.cpp Enable IPConstantPropagation to work with abstract call sites 2019-01-19 05:19:12 +00:00
IPO.cpp Hot cold splitting pass 2018-09-07 15:03:49 +00:00
InferFunctionAttrs.cpp [InstCombine] Cleanup libfunc attribute inferring 2018-10-16 21:18:31 +00:00
InlineSimple.cpp Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
Inliner.cpp [Inliner] Optimize shouldBeDeferred 2019-01-05 02:26:29 +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 [TI removal] Make variables declared as `TerminatorInst` and initialized 2018-10-15 10:04:59 +00:00
LowerTypeTests.cpp [LTO] Record whether LTOUnit splitting is enabled in index 2019-01-11 18:31:57 +00:00
MergeFunctions.cpp [MergeFunc] Allow merging identical vararg functions using aliases 2019-01-19 02:46:22 +00:00
PartialInlining.cpp [IR] Add Instruction::isLifetimeStartOrEnd, NFC 2018-12-21 21:49:40 +00:00
PassManagerBuilder.cpp [SampleFDO] Skip profile reading when flattened profile used in ThinLTO postlink 2019-01-17 20:48:34 +00:00
PruneEH.cpp [TI removal] Make variables declared as `TerminatorInst` and initialized 2018-10-15 10:04:59 +00:00
SCCP.cpp [IPSCCP,PM] Preserve PDT in the new pass manager. 2018-11-11 20:22:45 +00:00
SampleProfile.cpp We can improve the performance (generally) by memo-izing the action to map a debug location to its function summary. 2019-01-15 17:45:54 +00:00
StripDeadPrototypes.cpp
StripSymbols.cpp Move Analysis/Utils/Local.h back to Transforms 2018-06-04 21:23:21 +00:00
SyntheticCountsPropagation.cpp Refactor synthetic profile count computation. NFC. 2019-01-09 20:10:27 +00:00
ThinLTOBitcodeWriter.cpp Revert "[ThinLTO] Add summary entries for index-based WPD" 2019-01-17 16:05:04 +00:00
WholeProgramDevirt.cpp [LTO] Record whether LTOUnit splitting is enabled in index 2019-01-11 18:31:57 +00:00