[LLVMdev] LiveInterval Splitting & SubRegisters

David Greene dag at cray.com
Wed Jan 23 14:40:59 PST 2008


On Wednesday 23 January 2008 02:01, Evan Cheng wrote:
> On Jan 22, 2008, at 12:23 PM, David Greene wrote:
> > Evan,
> >
> > Can you explain the basic mechanics of the live interval splitting
> > code?
> > Is it all in LiveIntervalAnalysis.cpp under addIntervalsForSpills
> > and child
> > routines?  What is it trying to do?
>
> It's splitting live intervals that span multiple basic blocks. That
> is, when an interval is spilled, it introduce a single reload per
> basic block and retarget all the uses to use the result of the single
> reload. It does not (yet) split intra-bb intervals.

How is this different from the way the spiller used to work, looking
for reloads it could reuse?  Didn't that have the same goal of not
reloading a spilled value multiple times in a basic block?

                                            -Dave



More information about the llvm-dev mailing list