llvm/lib/Transforms/IPO
Owen Anderson ca399021d4 Add an early implementation of a partial inlining pass. The idea behind this
is that, for functions whose bodies are entirely guarded by an if-statement, it
can be profitable to pull the test out of the callee and into the caller.

This code has had some cursory testing, but still has a number of known issues
on the LLVM test suite.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73338 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 08:26:32 +00:00
..
ArgumentPromotion.cpp Implement and use new method Function::hasAddressTaken(). 2009-06-10 08:41:11 +00:00
CMakeLists.txt Rename AddReadAttrs to FunctionAttrs, and teach it how 2008-12-31 16:14:43 +00:00
ConstantMerge.cpp Add the private linkage. 2009-01-15 20:18:42 +00:00
DeadArgumentElimination.cpp Implement and use new method Function::hasAddressTaken(). 2009-06-10 08:41:11 +00:00
DeadTypeElimination.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
ExtractGV.cpp Add the private linkage. 2009-01-15 20:18:42 +00:00
FunctionAttrs.cpp Fix PR3754: don't mark functions that wrap MallocInst with 2009-05-06 08:42:00 +00:00
GlobalDCE.cpp Remove an unused function SafeToDestroyConstant(). Rename an almost 2009-06-09 21:37:11 +00:00
GlobalOpt.cpp Implement and use new method Function::hasAddressTaken(). 2009-06-10 08:41:11 +00:00
IndMemRemoval.cpp Introduce new linkage types linkonce_odr, weak_odr, common_odr 2009-03-07 15:45:40 +00:00
InlineAlways.cpp Adjustments to last patch based on review. 2009-01-09 01:30:11 +00:00
Inliner.cpp available_externall linkage is not local, this was confusing the codegenerator, 2009-05-23 14:06:57 +00:00
InlineSimple.cpp Adjustments to last patch based on review. 2009-01-09 01:30:11 +00:00
Internalize.cpp Rename getAnalysisToUpdate to getAnalysisIfAvailable. 2009-01-28 13:14:17 +00:00
IPConstantPropagation.cpp Use cast<> instead of dyn_cast<> for things that are known to be 2009-06-06 17:49:35 +00:00
IPO.cpp add a bunch more passes to the C bindings (PR3734), patch by 2009-03-06 16:52:18 +00:00
LoopExtractor.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
LowerSetJmp.cpp Large mechanical patch. 2008-09-25 21:00:45 +00:00
Makefile Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
MergeFunctions.cpp Unlike the other instructions, GEP really does need to look at the type of a 2009-06-13 19:09:52 +00:00
PartialInlining.cpp Add an early implementation of a partial inlining pass. The idea behind this 2009-06-14 08:26:32 +00:00
PartialSpecialization.cpp Keep calling-convention and tail-call bit when creating new invoke or call. 2009-03-08 19:02:17 +00:00
PruneEH.cpp Clear the cached cost when removing a function in 2009-03-19 18:03:56 +00:00
RaiseAllocations.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
StripDeadPrototypes.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
StripSymbols.cpp The second argument to RecursivelyDeleteTriviallyDeadInstructions has 2009-05-02 20:22:10 +00:00
StructRetPromotion.cpp introduce a useful abstraction to find out if a Use is in the call position of an instruction 2009-01-22 21:35:57 +00:00