llvm-6502/include/llvm/Analysis
Jakob Stoklund Olesen 43cda021d9 Fix inline cost predictions with SCIENCE.
After running a batch of measurements, it is clear that the inliner metrics
need some adjustments:

Own argument bonus:       20 -> 5
Outgoing argument penalty: 0 -> 5
Alloca bonus:             10 -> 5
Constant instr bonus:      7 -> 5
Dead successor bonus:     40 -> 5*(avg instrs/block)

The new cost metrics are generaly 25 points higher than before, so we may need
to move thresholds.

With this change, InlineConstants::CallPenalty becomes a political correction:

if (!isa<IntrinsicInst>(II) && !callIsSmall(CS.getCalledFunction()))
  NumInsts += InlineConstants::CallPenalty + CS.arg_size();

The code size is accurately modelled by CS.arg_size(). CallPenalty is added
because calls tend to take a long time, so it may not be worth it to inline a
function with lots of calls.

All of the political corrections are in the InlineConstants namespace:
IndirectCallBonus, CallPenalty, LastCallToStaticBonus, ColdccPenalty,
NoreturnPenalty.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94615 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26 23:21:56 +00:00
..
AliasAnalysis.h Partially address a README by having functionattrs consider calls to 2010-01-06 08:45:52 +00:00
AliasSetTracker.h Remove isPod() from DenseMapInfo, splitting it out to its own 2009-12-15 07:26:43 +00:00
CallGraph.h Reverting 85714, 85715, 85716, which are breaking the build 2009-11-01 16:42:53 +00:00
CaptureTracking.h Extend CaptureTracking to indicate when a value is never stored, even 2009-11-19 21:57:48 +00:00
CFGPrinter.h Remove ShortNames from getNodeLabel in DOTGraphTraits 2009-11-30 12:38:47 +00:00
ConstantFolding.h fix ConstantFoldCompareInstOperands to take the LHS/RHS as 2009-11-09 23:06:58 +00:00
ConstantsScanner.h eliminate all 80-col violations that I have introduced in my recent checkins (and some others more) 2009-08-27 23:44:33 +00:00
DebugInfo.h Add extra element to composite type. This new element will be used to record c++ class that holds current class's vtable. 2010-01-26 21:14:59 +00:00
DominatorInternals.h Fix PR6047 2010-01-16 13:38:07 +00:00
Dominators.h Add assert to check dominance dfs numbers. 2010-01-07 23:50:41 +00:00
DomPrinter.h add function passes for printing various dominator datastructures 2009-10-18 04:10:40 +00:00
DOTGraphTraitsPass.h Create Generic DOTGraphTraits Printer/Viewer 2010-01-16 10:56:41 +00:00
FindUsedTypes.h Change Pass::print to take a raw ostream instead of std::ostream, 2009-08-23 06:03:38 +00:00
InlineCost.h Fix inline cost predictions with SCIENCE. 2010-01-26 23:21:56 +00:00
InstructionSimplify.h factor some logic out of instcombine into a new SimplifyAddInst method. 2009-11-27 17:42:22 +00:00
Interval.h Change Pass::print to take a raw ostream instead of std::ostream, 2009-08-23 06:03:38 +00:00
IntervalIterator.h eliminate all 80-col violations that I have introduced in my recent checkins (and some others more) 2009-08-27 23:44:33 +00:00
IntervalPartition.h Change Pass::print to take a raw ostream instead of std::ostream, 2009-08-23 06:03:38 +00:00
IVUsers.h Add a new helper function to IVUsers for returning the "canonical" 2010-01-19 21:55:32 +00:00
LazyValueInfo.h disable copying, enforce some invariants. 2009-11-15 20:03:53 +00:00
LibCallAliasAnalysis.h Remove the AliasAnalysis::getMustAliases method, which is dead. 2009-11-22 16:01:44 +00:00
LibCallSemantics.h Revert 51775. 2008-05-30 22:47:19 +00:00
LiveValues.h remove redundant foward declaration. This function is already in 2009-11-11 00:21:21 +00:00
LoopDependenceAnalysis.h fixed some typos in method comments, reworded some comments for clarity 2009-12-07 09:06:37 +00:00
LoopInfo.h Restore dump() methods to Loop and MachineLoop. 2010-01-05 21:08:02 +00:00
LoopPass.h elimiante the dynamic_cast's from opt. 2010-01-22 06:03:06 +00:00
MemoryBuiltins.h Update computeArraySize() to use ComputeMultiple() to determine the array size associated with a malloc; also extend PerformHeapAllocSRoA() to check if the optimized malloc's arg had its highest bit set, so that it is safe for ComputeMultiple() to look through sext instructions while determining the optimized malloc's array size 2009-11-10 08:32:25 +00:00
MemoryDependenceAnalysis.h The phi translated pointer can be computed when returning a partially cached result 2009-12-22 04:25:02 +00:00
Passes.h Use ProfileInfo-API in ProfileInfo Loader and do more assertions. 2009-12-03 11:00:37 +00:00
PHITransAddr.h fix many input tracking bugs. 2009-12-09 00:56:14 +00:00
PointerTracking.h remove a few dead insertion methods. 2009-08-24 02:39:26 +00:00
PostDominators.h Remove trailing white spaces in post dominators header file 2010-01-11 22:22:46 +00:00
ProfileInfo.h Convert debug messages to use dbgs(). Generally this means 2009-12-23 17:55:11 +00:00
ProfileInfoLoader.h Reapplied r81355 with the problems fixed. 2009-09-16 11:35:50 +00:00
ProfileInfoTypes.h OptimalEdgeProfiling: Creation of profiles. 2009-09-01 19:03:44 +00:00
ScalarEvolution.h struct/class mismatch. 2010-01-21 15:40:14 +00:00
ScalarEvolutionExpander.h Revert LoopStrengthReduce.cpp to pre-r94061 for now. 2010-01-22 00:46:49 +00:00
ScalarEvolutionExpressions.h Make SCEVAddRecExpr's getType return a pointer type when the add 2010-01-19 22:53:50 +00:00
SparsePropagation.h Eliminate unnecessary LLVMContexts. 2009-12-18 23:42:08 +00:00
Trace.h eliminate the "Value" printing methods that print to a std::ostream. 2009-08-23 04:37:46 +00:00
ValueTracking.h Eliminate unnecessary LLVMContexts. 2009-12-18 23:42:08 +00:00
Verifier.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00