PING: PATCH: PR middle-end/37843:[4.4 Regression] unaligned stack in maindue to tail call optimizatiP
H.J. Lu
hjl.tools@gmail.com
Wed Nov 5 18:18:00 GMT 2008
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.
--
H.J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gcc-sibcall-4.patch
Type: application/octet-stream
Size: 6604 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20081105/812dc951/attachment.obj>
More information about the Gcc-patches
mailing list