[LLVMdev] Regalloc Refactoring
sabre at nondot.org
Tue Apr 17 14:24:05 PDT 2007
On Tue, 17 Apr 2007, David Greene wrote:
> Evan Cheng wrote:
>> Obviously, smart heuristics can make a big difference here (estimated
>> register pressures, etc.) But the more important thing is how the
>> passes down stream can recover from the earlier mistakes. By this, we
>> mean live range splitting and re-materialization.
> Can you explain this a little more? Do you mean that neither live
> range splitting nor rematerialization are practically possible
> with LLVM right now?
Anything is possible. :)
In practice, there are good ways and bad ways to build things. For
example, Evan recently implemented a really simple form of remat that
works on instructions that have no register inputs (e.g. things like
That said, we want to implement the full generality of remat and splitting
and have them work together well in the same framework. The key to this
is getting the right data structure.
> If that's the case, what are the primary issues?
Evan is the best to respond to this at this point :)
> These are things I will definitely have to do here so I'm quite
> interested in how this will all work. I'm more than happy to do
> a bunch of heavy lifting getting things into shape.
More information about the llvm-dev