[LLVMdev] Removing SimpleRewriter (formerly SimpleSpiller)
dag at cray.com
Fri Jun 5 08:55:55 PDT 2009
On Thursday 04 June 2009 19:03, Lang Hames wrote:
> The new spilling framework inserts spill code in-place (during
> register allocation) rather than deferring it using
> VirtRegMap/VirtRegRewriter. The goal is to enable techniques like
> iterative splitting to be implemented. It should also be a bit tidier
> as it keeps more state in the MachineFunction, rather than in
> book-keeping structures like VirtRegMap. The work is in the very early
> stages though.
One thing I would recommend is that the code that does IR
changes be separated from the code (if any) that does dataflow
information updates. The entanglement of these two functions
is part of the reason that the coalescing code is so complicated.
Separating the actions allows the code to be reused by other
passes (different register allocators, for example).
More information about the llvm-dev