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
CMakeLists.txt
ConstantMerge.cpp
DeadArgumentElimination.cpp
DeadTypeElimination.cpp
ExtractGV.cpp
FunctionAttrs.cpp
GlobalDCE.cpp
GlobalOpt.cpp
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
IPConstantPropagation.cpp
IPO.cpp
LoopExtractor.cpp
LowerSetJmp.cpp
Makefile
MergeFunctions.cpp
PartialInlining.cpp
PartialSpecialization.cpp
PruneEH.cpp
StripDeadPrototypes.cpp
StripSymbols.cpp
StructRetPromotion.cpp