summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/CalcSpillWeights.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Transpose the calculation of spill weights such that we are calculating oneJakob Stoklund Olesen2010-08-101-98/+127
| | | | | | | | | | | | | | register at a time. This turns out to be slightly faster than iterating over instructions, but more importantly, it allows us to compute spill weights for new registers created after the spill weight pass has run. Also compute the allocation hint at the same time as the spill weight. This allows us to use the spill weight as a cost metric for copies, and choose the most profitable hint if there is more than one possibility. The new hints provide a very small (< 0.1%) but universal code size improvement. llvm-svn: 110631
* Fix batch of converting RegisterPass<> to INTIALIZE_PASS().Owen Anderson2010-07-211-2/+2
| | | | llvm-svn: 109045
* Remove remaining calls to TII::isMoveInstr.Jakob Stoklund Olesen2010-07-161-2/+1
| | | | llvm-svn: 108556
* Fix typo.Eric Christopher2010-07-031-1/+1
| | | | llvm-svn: 107556
* Always normalize spill weights, also for intervals created by spilling.Jakob Stoklund Olesen2010-02-181-4/+1
| | | | | | | | | | | | | | Moderate the weight given to very small intervals. The spill weight given to new intervals created when spilling was not normalized in the same way as the original spill weights calculated by CalcSpillWeights. That meant that restored registers would tend to hang around because they had a much higher spill weight that unspilled registers. This improves the runtime of a few tests by up to 10%, and there are no significant regressions. llvm-svn: 96613
* Remove duplicated #include.Evan Cheng2010-02-101-1/+0
| | | | llvm-svn: 95747
* Emit an error for illegal inline asm constraint (which uses illegal type) ↵Evan Cheng2010-02-101-0/+1
| | | | | | rather than asserting. llvm-svn: 95746
* fix missing #includes.Chris Lattner2010-02-101-1/+1
| | | | llvm-svn: 95745
* move target-independent opcodes out of TargetInstrInfoChris Lattner2010-02-091-7/+1
| | | | | | | | | into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. llvm-svn: 95687
* Skip DEBUG_VALUE in some places where it was affecting codegen.Dale Johannesen2010-02-091-0/+3
| | | | llvm-svn: 95647
* Change errs() to dbgs().David Greene2009-12-241-1/+1
| | | | llvm-svn: 92099
* Changed slot index ranges for MachineBasicBlocks to be exclusive of endpoint.Lang Hames2009-12-221-1/+1
| | | | | | This fixes an in-place update bug where code inserted at the end of basic blocks may not be covered by existing intervals which were live across the entire block. It is also consistent with the way ranges are specified for live intervals. llvm-svn: 91859
* Moved spill weight calculation out of SimpleRegisterCoalescing and into its ↵Lang Hames2009-12-141-0/+154
own pass: CalculateSpillWeights. llvm-svn: 91273
OpenPOWER on IntegriCloud