[llvm-commits] PrologEpilogInserter: add total stack size statistic
Jakob Stoklund Olesen
stoklund at 2pi.dk
Thu Aug 4 13:56:56 PDT 2011
On Aug 4, 2011, at 1:54 PM, Ivan Krasin wrote:
> On Thu, Aug 4, 2011 at 1:45 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
>>
>> On Aug 4, 2011, at 1:43 PM, Ivan Krasin wrote:
>>
>>> HI llvm team,
>>>
>>> this patch adds a new statistic proposed by Jakob: Number of bytes
>>> used for stack in all function. For instance, it would make it easier
>>> to measure progress/regress of instruction selectors and register
>>> allocators.
>>
>> Awesome.
>>
>>> Index: lib/CodeGen/PrologEpilogInserter.cpp
>>> ===================================================================
>>> --- lib/CodeGen/PrologEpilogInserter.cpp (revision 136909)
>>> +++ lib/CodeGen/PrologEpilogInserter.cpp (working copy)
>>> @@ -54,6 +54,7 @@
>>>
>>> STATISTIC(NumVirtualFrameRegs, "Number of virtual frame regs encountered");
>>> STATISTIC(NumScavengedRegs, "Number of frame index regs scavenged");
>>> +STATISTIC(NumTotalStackSize, "Number of bytes used for stack in all
>>> functions");
>>>
>>> /// createPrologEpilogCodeInserter - This function returns a pass that inserts
>>> /// prolog and epilog code, and eliminates abstract frame references.
>>> @@ -677,7 +678,9 @@
>>> }
>>>
>>> // Update frame info to pretend that this is part of the stack...
>>> - MFI->setStackSize(Offset - LocalAreaOffset);
>>> + int StackSize = Offset - LocalAreaOffset;
>>> + MFI->setStackSize(StackSize);
>>> + NumTotalStackSize += StackSize;
>>
>> Is int really the right type here?
> Thanks for the catch. Although LocalAreaOffset is int, Offset is
> int64_t. So, I've changed StackSize type to int64_t.
> Please, find the corrected patch attached.
LGTM. Please commit with a different variable name as Cameron suggested.
/jakob
More information about the llvm-commits
mailing list