[LLVMdev] Register allocation marking spills (Re: NumLoads/NumStores for linearscan?)

David A. Greene greened at obbligato.org
Thu Aug 26 14:53:13 PDT 2010


Heikki Kultala <hkultala at cs.tut.fi> writes:

> On 25 Aug 2010, at 02:04, Silvio Ricardo Cordeiro wrote:
>
>> On Sun, Aug 15, 2010 at 10:04 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
>> 
>> On Aug 15, 2010, at 5:12 PM, Silvio Ricardo Cordeiro wrote:
>> 
>> > Is there a way for me to collect statistics about the number of
>> > loads/stores added by the "linearscan" register allocator (just
>> > like can be done with the "local" allocator)?  I still haven't
>> > grokked very well the interaction between RALinScan and
>> > Spiller... Should I add those two statistics to the spiller's
>> > class?
>
> hmm, having information if an operation is (a, or part of a) spill
> generated by the register allocation would be benefical in some cases;
> Those memory operations cannon alias with any other memory operations
> in the code, so it would help Alias Analysis.


This is already done.  Look in CodeGen/MachineFrameInfo.h:

  struct StackObject {
    [...]

    // isSpillSlot - If true the stack object is used as spill slot. It
    // cannot alias any other memory objects.
    bool isSpillSlot;

Right now this gets used to print out some comments to label spill
instructions, among other things.

                            -Dave



More information about the llvm-dev mailing list