[llvm-commits] PrologEpilogInserter: add total stack size statistic

Jakob Stoklund Olesen stoklund at 2pi.dk
Thu Aug 4 13:45:58 PDT 2011


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?

Otherwise, it looks good to me.

/jakob




More information about the llvm-commits mailing list