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

Ivan Krasin krasin at chromium.org
Thu Aug 4 13:43:49 PDT 2011


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.

Ivan Krasin

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;
 }

 /// insertPrologEpilogCode - Scan the function for modified callee saved
-------------- next part --------------
A non-text attachment was scrubbed...
Name: total_stack_size.patch
Type: text/x-patch
Size: 965 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20110804/57398e3e/attachment.bin>


More information about the llvm-commits mailing list