This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: linux-kernels and -foptimize-sibling-calls
- To: Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>
- Subject: Re: linux-kernels and -foptimize-sibling-calls
- From: Jakub Jelinek <jakub at redhat dot com>
- Date: Fri, 13 Oct 2000 07:49:36 +0200
- Cc: gcc at gcc dot gnu dot org
- References: <00101222464302.04452@enzo.bigblue.local>
- Reply-To: Jakub Jelinek <jakub at redhat dot com>
On Thu, Oct 12, 2000 at 10:46:43PM +0200, Franz Sirl wrote:
> Hi,
>
> what's the word about linux-2.4, current CVS compilers and
> -foptimize-sibling-calls (on fby default or -O2)? Unless I disable this
> option the TCP stack behaves strangely on PPC and I seem to remember a
> similar comment for x86 from someone else on the GCC lists. IIRC, this is a
> somewhat expected behaviour due to the coding used in the Linux TCP stack. If
> so, I will post a patch on linux-kernel to turn off this optimization if the
> compiler supports it, similar to what has been done to turn off
> -fstrict-aliasing during kernel compilation.
>
> Otherwise, if this is a real bug in the sibling call optimization, I will try
> to come up with a testcase.
I'm not aware of any sibling call related bugs at the moment.
There has been several, but they have been fixed since then (and to my
knowledge everything should be in CVS).
Current CVS will miscompile ia32 kernel though because of a regmove bug
where it merges stack adjustements accross an asm, so that when interrupt
comes in that asm (it is actually down or something like that), the stack
area where the semaphore is is already below %sp and thus volatile.
We have a workaround for this in RHL7 gcc, Jan Hubicka posted a patch for
this a couple of weeks ago as well. We'll need to look at that patch once
again, fix it if needed and commit it in the near future.
So, if you have problems with it, then please work on a testcase.
Jakub