This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [new-ra] GCC-3.3.2/x86: some suspicious behaviour
On Thursday 08 July 2004 17:31, Denis Zaitsev wrote:
> On Thu, Jul 08, 2004 at 04:46:33PM +0200, Michael Matz wrote:
> > Hi,
> >
> > On Thu, 8 Jul 2004, Denis Zaitsev wrote:
> > > So, what does these two commands mean:
> > >
> > >
> > > movl %ecx, 16(%esp)
> > > movl %esi, 20(%esp)
> >
> > It means that the compiler wasn't able to optimize them away. They do no
> > harm. FWIW gcc 3.4 or the new-regalloc-branch don't have this problem.
>
> They don't harm. But to optimize _what_? So, what is the initial
> meaning of these assignments? And why they appear only for the double
> asm statement?
They're storing the modified values of s and d back into their stack slots
after the first asm. The compiler wasn't able to determine that these were
dead stores.
Remove the "extern inline" and compile with -O0. This will show you
approximately what the code looks like before optimization.
Paul