[LLVMdev] LiveInterval Splitting & SubRegisters
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?
More information about the llvm-dev