Dynamic Programming for Computer Register Allocation
Created on 2022-02-19T00:09:23-06:00
Poses register allocation as an optimization problem.
Notes that whenever code might jump back to a previous point all registers must be shuffled back to place.
Because of this the cost of reshuffling should be included as a penalty for a proposed solution.
Incorporates loops by adding increased weights to registers that can be re-entered via the loop.
Runs a Knuth-Plass-like dynamic programming solver to select spills and shuffles.