[Bug rtl-optimization/44323] IRA/reload moves asm statement
pinskia at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat May 29 15:39:00 GMT 2010
------- Comment #1 from pinskia at gmail dot com 2010-05-29 15:39 -------
Subject: Re: New: IRA/reload moves asm statement
I don't think this is valid. You cannot depend on where the spill will
happen around a function call. It is spilling to save the volatile
register. With -O, we don't use volatile registers to keep variables
across functions. While at -O2 we do so it saves it right before the
function call.
Sent from my iPhone
On May 29, 2010, at 8:25 AM, "hjl dot tools at gmail dot com"
<gcc-bugzilla@gcc.gnu.org
> wrote:
> On Linux/x86-64, IRA/reload moves asm statement by
> adding "movss" at -O2:
>
> [hjl@gnu-6 vzeroupper-1]$ cat foo.c
> extern void bar2 (void);
> float
> foo (float y)
> {
> asm volatile ("nop");
> bar2 ();
> return y;
> }
> [hjl@gnu-6 vzeroupper-1]$ gcc -S -O foo.c
> [hjl@gnu-6 vzeroupper-1]$ cat foo.s
> .file "foo.c"
> .text
> .globl foo
> .type foo, @function
> foo:
> .LFB0:
> .cfi_startproc
> subq $24, %rsp
> .cfi_def_cfa_offset 32
> movss %xmm0, 12(%rsp)
> #APP
> # 5 "foo.c" 1
> nop
> # 0 "" 2
> #NO_APP
> call bar2
> movss 12(%rsp), %xmm0
> addq $24, %rsp
> .cfi_def_cfa_offset 8
> ret
> .cfi_endproc
> .LFE0:
> .size foo, .-foo
> .ident "GCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4)"
> .section .note.GNU-stack,"",@progbits
> [hjl@gnu-6 vzeroupper-1]$ gcc -S -O2 foo.c
> [hjl@gnu-6 vzeroupper-1]$ cat foo.s
> .file "foo.c"
> .text
> .p2align 4,,15
> .globl foo
> .type foo, @function
> foo:
> .LFB0:
> .cfi_startproc
> subq $24, %rsp
> .cfi_def_cfa_offset 32
> #APP
> # 5 "foo.c" 1
> nop
> # 0 "" 2
> #NO_APP
> movss %xmm0, (%rsp)
> call bar2
> movss (%rsp), %xmm0
> addq $24, %rsp
> .cfi_def_cfa_offset 8
> ret
> .cfi_endproc
> .LFE0:
> .size foo, .-foo
> .ident "GCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4)"
> .section .note.GNU-stack,"",@progbits
> [hjl@gnu-6 vzeroupper-1]$
>
>
> --
> Summary: IRA/reload moves asm statement
> Product: gcc
> Version: 4.6.0
> Status: UNCONFIRMED
> Severity: normal
> Priority: P3
> Component: rtl-optimization
> AssignedTo: unassigned at gcc dot gnu dot org
> ReportedBy: hjl dot tools at gmail dot com
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44323
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44323
More information about the Gcc-bugs
mailing list