llvm-6502/lib/Transforms/IPO
Jakob Stoklund Olesen f7477470d3 Try to keep the cached inliner costs around for a bit longer for big functions.
The Caller cost info would be reset everytime a callee was inlined. If the
caller has lots of calls and there is some mutual recursion going on, the
caller cost info could be calculated many times.

This patch reduces inliner runtime from 240s to 0.5s for a function with 20000
small function calls.

This is a more conservative version of r98089 that doesn't break the clang
test CodeGenCXX/temp-order.cpp. That test relies on rather extreme inlining
for constant folding.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98099 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 23:02:17 +00:00
..
ArgumentPromotion.cpp Correct whitespace. 2010-02-25 06:38:51 +00:00
CMakeLists.txt Auto-upgrade free instructions to calls to the builtin free function. 2009-10-24 04:23:03 +00:00
ConstantMerge.cpp 1. modernize the constantmerge pass, using densemap/smallvector. 2010-02-12 18:17:23 +00:00
DeadArgumentElimination.cpp There are two ways of checking for a given type, for example isa<PointerType>(T) 2010-02-16 11:11:14 +00:00
DeadTypeElimination.cpp Uniformize the names of type predicates: rather than having isFloatTy and 2010-02-15 16:12:20 +00:00
ExtractGV.cpp Remove includes of Support/Compiler.h that are no longer needed after the 2009-10-25 06:57:41 +00:00
FunctionAttrs.cpp There are two ways of checking for a given type, for example isa<PointerType>(T) 2010-02-16 11:11:14 +00:00
GlobalDCE.cpp cleanups, switch GlobalDCE to SmallPtrSet instead of std::set 2009-11-01 19:03:42 +00:00
GlobalOpt.cpp Fix rdar://7694996 a miscompile of 183.equake from my patch yesterday, 2010-02-26 23:42:13 +00:00
InlineAlways.cpp Try to keep the cached inliner costs around for a bit longer for big functions. 2010-03-09 23:02:17 +00:00
Inliner.cpp Try to keep the cached inliner costs around for a bit longer for big functions. 2010-03-09 23:02:17 +00:00
InlineSimple.cpp Try to keep the cached inliner costs around for a bit longer for big functions. 2010-03-09 23:02:17 +00:00
Internalize.cpp Change errs() to dbgs(). 2010-01-05 01:28:07 +00:00
IPConstantPropagation.cpp Remove unused LLVMContext. 2009-11-23 03:29:18 +00:00
IPO.cpp Reverting 85714, 85715, 85716, which are breaking the build 2009-11-01 16:42:53 +00:00
LoopExtractor.cpp Update various Loop optimization passes to cope with the possibility that 2009-11-05 21:11:53 +00:00
LowerSetJmp.cpp Eliminate some temporaries. 2009-11-03 12:52:50 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
MergeFunctions.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
PartialInlining.cpp Fix "the the" and similar typos. 2010-02-10 16:03:48 +00:00
PartialSpecialization.cpp Remove includes of Support/Compiler.h that are no longer needed after the 2009-10-25 06:57:41 +00:00
PruneEH.cpp Remove includes of Support/Compiler.h that are no longer needed after the 2009-10-25 06:57:41 +00:00
StripDeadPrototypes.cpp Remove includes of Support/Compiler.h that are no longer needed after the 2009-10-25 06:57:41 +00:00
StripSymbols.cpp Strip new llvm.dbg.value intrinsic. 2010-02-10 21:19:56 +00:00
StructRetPromotion.cpp Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer. 2010-01-05 13:12:22 +00:00