i386.c (ix86_compute_frame_layout): Do not add bottom alignment for leaf functions.
authorRichard Henderson <rth@redhat.com>
Tue, 28 May 2002 20:27:45 +0000 (13:27 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 28 May 2002 20:27:45 +0000 (13:27 -0700)
        * config/i386/i386.c (ix86_compute_frame_layout): Do not add
        bottom alignment for leaf functions.

From-SVN: r53965

gcc/ChangeLog
gcc/config/i386/i386.c

index 356c1b6b7a4ce82c8b31f3a425455ad5ccf76e8b..54e828f86071e21cd1f77380365a00379ca21f66 100644 (file)
@@ -1,3 +1,8 @@
+2002-05-28  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_compute_frame_layout): Do not add
+       bottom alignment for leaf functions.
+
 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
 
        * config/pa/milli32.S, config/pa/lib1funcs.asm,
index cf2def2393bba6b00005e1425b3e3a80d015aa41..39831af4745795a51c81a14da6fd2a7a9465d7b0 100644 (file)
@@ -4138,8 +4138,9 @@ ix86_compute_frame_layout (frame)
 
   offset += size;
 
-  /* Add outgoing arguments area.  */
-  if (ACCUMULATE_OUTGOING_ARGS)
+  /* Add outgoing arguments area.  Can be skipped if we eliminated
+     all the function calls as dead code.  */
+  if (ACCUMULATE_OUTGOING_ARGS && !current_function_is_leaf)
     {
       offset += current_function_outgoing_args_size;
       frame->outgoing_arguments_size = current_function_outgoing_args_size;
@@ -4147,9 +4148,12 @@ ix86_compute_frame_layout (frame)
   else
     frame->outgoing_arguments_size = 0;
 
-  /* Align stack boundary.  */
-  frame->padding2 = ((offset + preferred_alignment - 1)
-                    & -preferred_alignment) - offset;
+  /* Align stack boundary.  Only needed if we're calling another function.  */
+  if (!current_function_is_leaf)
+    frame->padding2 = ((offset + preferred_alignment - 1)
+                      & -preferred_alignment) - offset;
+  else
+    frame->padding2 = 0;
 
   offset += frame->padding2;