mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Move more fragments of spill weight calculation into CalcSpillWeights.h
Simplify the spill weight calculation a bit by bypassing getApproximateInstructionCount() and using LiveInterval::getSize() directly. This changes the computed spill weights, but only by a constant factor in each function. It should not affect how spill weights compare against each other, and so it shouldn't affect code generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125530 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -75,14 +75,6 @@ namespace llvm {
|
||||
// Calculate the spill weight to assign to a single instruction.
|
||||
static float getSpillWeight(bool isDef, bool isUse, unsigned loopDepth);
|
||||
|
||||
// After summing the spill weights of all defs and uses, the final weight
|
||||
// should be normalized, dividing the weight of the interval by its size.
|
||||
// This encourages spilling of intervals that are large and have few uses,
|
||||
// and discourages spilling of small intervals with many uses.
|
||||
void normalizeSpillWeight(LiveInterval &li) {
|
||||
li.weight /= getApproximateInstructionCount(li) + 25;
|
||||
}
|
||||
|
||||
typedef Reg2IntervalMap::iterator iterator;
|
||||
typedef Reg2IntervalMap::const_iterator const_iterator;
|
||||
const_iterator begin() const { return r2iMap_.begin(); }
|
||||
@@ -461,9 +453,6 @@ namespace llvm {
|
||||
DenseMap<unsigned,unsigned> &MBBVRegsMap,
|
||||
std::vector<LiveInterval*> &NewLIs);
|
||||
|
||||
// Normalize the spill weight of all the intervals in NewLIs.
|
||||
void normalizeSpillWeights(std::vector<LiveInterval*> &NewLIs);
|
||||
|
||||
static LiveInterval* createInterval(unsigned Reg);
|
||||
|
||||
void printInstrs(raw_ostream &O) const;
|
||||
|
Reference in New Issue
Block a user