summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/InlineCost.cpp
Commit message (Collapse)AuthorAgeFilesLines
* There are two ways of checking for a given type, for example isa<PointerType>(T)Duncan Sands2010-02-161-2/+2
| | | | | | | and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. llvm-svn: 96344
* Update CodeMetrics to count 'big' function calls explicitly.Jakob Stoklund Olesen2010-02-051-5/+9
| | | | llvm-svn: 95453
* Fix inline cost predictions with SCIENCE.Jakob Stoklund Olesen2010-01-261-28/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 94615
* Revert test polarity to match comment and desired outcome. Remove undeserved ↵Jakob Stoklund Olesen2010-01-261-2/+2
| | | | | | | | | | | | | | bonus. A GEP with all constant indices is already considered free by analyzeBasicBlock(), so don't give it an extra bonus in CountCodeReductionForAlloca(). This patch should remove a small positive bias toward inlining functions with variable-index GEPs, and remove a smaller negative bias from functions with all-constant index GEPs. llvm-svn: 94591
* Remove dead code.Jakob Stoklund Olesen2010-01-261-3/+0
| | | | | | | | | | Functions containing indirectbr are marked NeverInline by analyzeBasicBlock(), so there is no point in giving indirectbr special treatment in CountCodeReductionForConstant. It is never called. No functional change intended. llvm-svn: 94590
* Skip calculation of ArgumentWeights if it will never be used.Jakob Stoklund Olesen2010-01-261-0/+6
| | | | | | | | Save a few bytes by allocating the correct size vector. No functional change intended. llvm-svn: 94589
* Pad my commit stats by reducing indentation in this now separateEric Christopher2010-01-141-19/+20
| | | | | | commit. llvm-svn: 93473
* Few minor changes that were requested. No functional change.Eric Christopher2010-01-141-2/+6
| | | | llvm-svn: 93462
* Small tweak to inline cost computation. Ext of i/fcmp results are mostly ↵Evan Cheng2010-01-141-1/+6
| | | | | | optimized away in codegen. llvm-svn: 93453
* Reduce the inlining cost of functions that contain calls to easily,Eric Christopher2010-01-141-1/+27
| | | | | | and frequently optimized functions. llvm-svn: 93448
* Add a missing closing parenthesis, and tweak to fit in 80Duncan Sands2009-11-011-2/+2
| | | | | | columns. llvm-svn: 85732
* add a comment about why we don't allow inlining indbr.Chris Lattner2009-11-011-0/+5
| | | | llvm-svn: 85724
* pull check for return inst out of loop, never inline a callee that containsChris Lattner2009-11-011-5/+7
| | | | | | an indirectbr. llvm-svn: 85702
* rename indbr -> indirectbr to appease the residents of #llvm.Chris Lattner2009-10-281-1/+1
| | | | llvm-svn: 85351
* Random updates to passes for indbr, I need blockaddress before I can do much ↵Chris Lattner2009-10-271-0/+3
| | | | | | more. llvm-svn: 85316
* Remove FreeInst.Victor Hernandez2009-10-261-4/+0
| | | | | | | Remove LowerAllocations pass. Update some more passes to treate free calls just like they were treating FreeInst. llvm-svn: 85176
* Remove AllocationInst. Since MallocInst went away, AllocaInst is the only ↵Victor Hernandez2009-10-231-1/+1
| | | | | | subclass of AllocationInst, so it no longer is necessary. llvm-svn: 84969
* Remove MallocInst from LLVM Instructions.Victor Hernandez2009-10-171-1/+1
| | | | llvm-svn: 84299
* Compute a full cost value even when a setjmp call is found.Dan Gohman2009-10-131-3/+1
| | | | llvm-svn: 84015
* Split code not specific to Function inlining out into a separate class,Dan Gohman2009-10-131-25/+28
| | | | | | | named CodeMetrics. Move it to be a non-nested class. Rename RegionInfo back to FunctionInfo. llvm-svn: 84013
* Move the InlineCost code from Transforms/Utils to Analysis.Dan Gohman2009-10-131-0/+337
llvm-svn: 83998
OpenPOWER on IntegriCloud