[LLVMdev] Register allocation questions

Lang Hames lhames at gmail.com
Fri May 7 17:58:37 PDT 2010


Hi Sam,

- What exactly is the SpillIs parameter for this function?
>

My understanding is that it tells addIntervalsForSpills not to attempt to
rematerialize instructions which use the registers for those intervals
(since they're about to be spilled themselves).

I've been passing in an empty set in the PBQP allocator with no correctness
issues (that I've seen). I'm not sure what omitting it does to the quality
of the generated code though.


> - The return value is a vector of LiveIntervals, but it looks like they
> have all been added to the LiveIntervals object already. Is this correct?
>

Yes - that's correct.


> - Is the Spiller class functional? Using the -new-spill-framework option
> with the linearscan allocator is giving me crashes.
>

Spiller is just an interface. TrivialSpiller, the default implementation for
LLVM 2.6, was experimental.
These days the default implementation just forwards spilling calls to
addIntervalsForSpills anyway.


Cheers,
Lang.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100508/370e9e55/attachment.html>


More information about the llvm-dev mailing list