Patchwork Add static size report when using -fstack-usage for ARM targets

login
register
mail settings
Submitter Thomas Klein
Date Nov. 26, 2010, 7:19 p.m.
Message ID <4CF0082C.9030500@web.de>
Download mbox | patch
Permalink /patch/73218/
State New
Headers show

Comments

Richard Earnshaw - Nov. 26, 2010, 6:48 p.m.
On Fri, 2010-11-26 at 19:19 +0000, Thomas Klein wrote:
> Hello
> 
> Hope this is more matching the way it should.
> Please let me know if I'm wrong here.
> 
> regards
>    Thomas
> 
> 
> 2010-11-26  Thomas Klein <th.r.klein@web.de>
> 
>      * config/arm/arm.c (arm_expand_prologue): Report the static stack size
>      if -fstack-usage is used.
>      * config/arm/arm.c (thumb1_expand_prologue): Report the static 
> stack size
>      if -fstack-usage is used.
> 

OK.

R.
Thomas Klein - Nov. 26, 2010, 7:19 p.m.
Hello

Hope this is more matching the way it should.
Please let me know if I'm wrong here.

regards
   Thomas


2010-11-26  Thomas Klein <th.r.klein@web.de>

     * config/arm/arm.c (arm_expand_prologue): Report the static stack size
     if -fstack-usage is used.
     * config/arm/arm.c (thumb1_expand_prologue): Report the static 
stack size
     if -fstack-usage is used.
Thomas Klein - Dec. 3, 2010, 12:21 p.m.
Hello

Maybe it's my fault.
Whom should I ask to do the outstanding commit or is there anything left 
to do?

Regards
  Thomas

On 11/26/10 18:48, Richard Earnshaw wrote:
> OK.
>
> R.
>
>
>
>
>
>

Patch

Index: gcc/config/arm/arm.c
===================================================================
--- gcc/config/arm/arm.c        (revision 167184)
+++ gcc/config/arm/arm.c        (working copy)
@@ -15765,6 +15765,10 @@  arm_expand_prologue (void)
         }
      }

+  if (flag_stack_usage)
+    current_function_static_stack_size
+      = offsets->outgoing_args - offsets->saved_args;
+
    if (offsets->outgoing_args != offsets->saved_args + saved_regs)
      {
        /* This add can produce multiple insns for a large constant, so we
@@ -20577,6 +20581,10 @@  thumb1_expand_prologue (void)
      emit_move_insn (gen_rtx_REG (Pmode, ARM_HARD_FRAME_POINTER_REGNUM),
                     stack_pointer_rtx);

+  if (flag_stack_usage)
+    current_function_static_stack_size
+      = offsets->outgoing_args - offsets->saved_args;
+
    amount = offsets->outgoing_args - offsets->saved_regs;
    amount -= 4 * thumb1_extra_regs_pushed (offsets, true);
    if (amount)