mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-24 13:18:17 +00:00
Prefer cheap registers for busy live ranges.
On the x86-64 and thumb2 targets, some registers are more expensive to encode than others in the same register class. Add a CostPerUse field to the TableGen register description, and make it available from TRI->getCostPerUse. This represents the cost of a REX prefix or a 32-bit instruction encoding required by choosing a high register. Teach the greedy register allocator to prefer cheap registers for busy live ranges (as indicated by spill weight). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129864 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -172,6 +172,7 @@ void CodeGenTarget::ReadRegisters() const {
|
||||
CodeGenRegister::CodeGenRegister(Record *R) : TheDef(R) {
|
||||
DeclaredSpillSize = R->getValueAsInt("SpillSize");
|
||||
DeclaredSpillAlignment = R->getValueAsInt("SpillAlignment");
|
||||
CostPerUse = R->getValueAsInt("CostPerUse");
|
||||
}
|
||||
|
||||
const std::string &CodeGenRegister::getName() const {
|
||||
|
||||
Reference in New Issue
Block a user