[LLVMdev] Regalloc Refactoring

Chris Lattner 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 
"load immediate").

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 mailing list