aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorJoey Ye <joey.ye@intel.com>2009-06-12 05:54:30 -0700
committerH.J. Lu <hjl@gcc.gnu.org>2009-06-12 05:54:30 -0700
commitf85882d8e1640453ca69be5ed13863167b26d869 (patch)
tree89cf6e9d3389a80f867d5f7c9315355646308b30 /gcc/function.c
parentfc9f468b5fbc938fb39fd1917918b37fc3448496 (diff)
downloadgcc-f85882d8e1640453ca69be5ed13863167b26d869.zip
gcc-f85882d8e1640453ca69be5ed13863167b26d869.tar.gz
gcc-f85882d8e1640453ca69be5ed13863167b26d869.tar.bz2
re PR target/39146 (Unnecessary stack alignment)
gcc/ 2009-06-12 Joey Ye <joey.ye@intel.com> PR middle-end/39146 * cfgexpand.c (get_decl_align_unit): Update max_used_stack_slot_alignment with align instead of stack_alignment_needed. * function.c (assign_stack_local_1): Update max_used_stack_slot_alignment with alignment_in_bits instead of stack_alignment_needed. (locate_and_pad_parm): Don't update max_used_stack_slot_alignment here. gcc/testsuite/ 2009-06-12 Joey Ye <joey.ye@intel.com> H.J. Lu <hongjiu.lu@intel.com> PR middle-end/39146 * gcc.target/i386/stackalign/pr39146.c: New. From-SVN: r148428
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/function.c b/gcc/function.c
index ddf08b04..8274177 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -355,8 +355,8 @@ assign_stack_local_1 (enum machine_mode mode, HOST_WIDE_INT size,
if (crtl->stack_alignment_needed < alignment_in_bits)
crtl->stack_alignment_needed = alignment_in_bits;
- if (crtl->max_used_stack_slot_alignment < crtl->stack_alignment_needed)
- crtl->max_used_stack_slot_alignment = crtl->stack_alignment_needed;
+ if (crtl->max_used_stack_slot_alignment < alignment_in_bits)
+ crtl->max_used_stack_slot_alignment = alignment_in_bits;
/* Calculate how many bytes the start of local variables is off from
stack alignment. */
@@ -3520,8 +3520,6 @@ locate_and_pad_parm (enum machine_mode passed_mode, tree type, int in_regs,
calling function side. */
if (crtl->stack_alignment_needed < boundary)
crtl->stack_alignment_needed = boundary;
- if (crtl->max_used_stack_slot_alignment < crtl->stack_alignment_needed)
- crtl->max_used_stack_slot_alignment = crtl->stack_alignment_needed;
if (crtl->preferred_stack_boundary < boundary)
crtl->preferred_stack_boundary = boundary;