diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-02-28 18:05:07 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-02-28 18:05:07 +0100 |
commit | 80a832cd25fa03a93768f3d2bc05d23a06a87e26 (patch) | |
tree | 516bcbdd71d1bf924c03920302af2c3b2d95b859 /gcc/rtl.h | |
parent | d154f92719efa355bef3c2a19b62e8c8dd720172 (diff) | |
download | gcc-80a832cd25fa03a93768f3d2bc05d23a06a87e26.zip gcc-80a832cd25fa03a93768f3d2bc05d23a06a87e26.tar.gz gcc-80a832cd25fa03a93768f3d2bc05d23a06a87e26.tar.bz2 |
re PR middle-end/47893 (4.6 miscompiles mesa on i686)
PR middle-end/47893
* rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
(assign_stack_local_1): Change last argument type to int.
* function.c (assign_stack_local_1): Replace reduce_alignment_ok
argument with kind. If bit ASLK_RECORD_PAD is not set in it,
don't record padding space into frame_space_list nor
use those areas.
(assign_stack_local): Adjust caller.
(assign_stack_temp_for_type): Call assign_stack_local_1 instead
of assign_stack_local, pass 0 as last argument.
* caller-save.c (setup_save_areas): Adjust assign_stack_local_1
callers.
* gcc.dg/pr47893.c: New test.
From-SVN: r170568
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -1,6 +1,6 @@ /* Register Transfer Language (RTL) definitions for GCC Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GCC. @@ -1685,7 +1685,9 @@ extern rtx simplify_subtraction (rtx); /* In function.c */ extern rtx assign_stack_local (enum machine_mode, HOST_WIDE_INT, int); -extern rtx assign_stack_local_1 (enum machine_mode, HOST_WIDE_INT, int, bool); +#define ASLK_REDUCE_ALIGN 1 +#define ASLK_RECORD_PAD 2 +extern rtx assign_stack_local_1 (enum machine_mode, HOST_WIDE_INT, int, int); extern rtx assign_stack_temp (enum machine_mode, HOST_WIDE_INT, int); extern rtx assign_stack_temp_for_type (enum machine_mode, HOST_WIDE_INT, int, tree); |