This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PING: PATCH: PR middle-end/37843:[4.4 Regression] unaligned stack in main due to tail call optimizatiP
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: "GCC Patches" <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 24 Nov 2008 16:43:42 -0800
- Subject: Re: PING: PATCH: PR middle-end/37843:[4.4 Regression] unaligned stack in main due to tail call optimizatiP
On Wed, Nov 19, 2008 at 10:12 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Mon, Nov 10, 2008 at 10:50 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Wed, Nov 5, 2008 at 10:06 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On Wed, Nov 5, 2008 at 8:49 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>>>> Hello!
>>>>
>>>>> Here is the updated version. When we update stack boundary before
>>>>> expanding a function, we don't need to check parm_stack_boundary
>>>>> in expand_stack_alignment. Tested on Linux/ia32, Linux/Intel64 and
>>>>> Linux/ia64. OK for trunk?
>>>>>
>>>>> Thanks.
>>>>>
>>>>>
>>>>> --
>>>>> H.J.
>>>>> ----
>>>>> gcc/
>>>>>
>>>>> 2008-11-04 H.J. Lu <hongjiu.lu@intel.com>
>>>>> Joey Ye <joey.ye@intel.com>
>>>>>
>>>>> PR middle-end/37843
>>>>> * cfgexpand.c (expand_stack_alignment): Don't update stack
>>>>> boundary nor check incoming stack boundary here.
>>>>> (gimple_expand_cfg): Update stack boundary and check incoming
>>>>> stack boundary here.
>>>>>
>>>>> * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
>>>>> false if we need to align the outgoing stack.
>>>>> (ix86_update_stack_boundary): Check parm_stack_boundary.
>>>>>
>>>>> gcc/testsuite/
>>>>>
>>>>> 2008-11-04 H.J. Lu <hongjiu.lu@intel.com>
>>>>>
>>>>> PR middle-end/37843
>>>>> * gcc.target/i386/align-main-3.c: New.
>>>>> * gcc.target/i386/pr37843-1.c: Likewise.
>>>>> * gcc.target/i386/pr37843-2.c: Likewise.
>>>>> * gcc.target/i386/pr37843-3.c: Likewise.
>>>>>
>>>>
>>>>> --- gcc/testsuite/gcc.target/i386/align-main-3.c.sibcall 2008-11-04
>>>>> 08:33:41.000000000 -0800
>>>>> +++ gcc/testsuite/gcc.target/i386/align-main-3.c 2008-11-04
>>>>> 08:33:41.000000000 -0800
>>>>> @@ -0,0 +1,14 @@
>>>>> +/* Test for stack alignment with sibcall optimization. */
>>>>> +/* { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* } && ilp32
>>>>> } } } */
>>>>>
>>>>
>>>>
>>>> It is enough to check for "target { *-*-linux* && ilp32 }", since we
>>>> execute gcc.target/i386 for i?86 and x86_64 targets only.
>>>>
>>>>> --- gcc/testsuite/gcc.target/i386/pr37843-3.c.sibcall 2008-11-04
>>>>> 08:33:41.000000000 -0800
>>>>> +++ gcc/testsuite/gcc.target/i386/pr37843-3.c 2008-11-04
>>>>> 08:33:41.000000000 -0800
>>>>> @@ -0,0 +1,13 @@
>>>>> +/* Test for stack alignment with sibcall optimization. */
>>>>> +/* { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* } && ilp32
>>>>> } } } */
>>>>>
>>>>
>>>> Same here.
>>>>
>>>
>>> Here is the updated patch. Tested on Linux/ia32, Linux/Intel64 and
>>> Linux/ia64. OK for trunk?
>>>
>>> Thanks.
>>>
>>
>> Ping.
>>
>
> PING.
>
PING.
--
H.J.