This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/39148] New: -Os increase code size when stack is aligned
- From: "hjl dot tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Feb 2009 20:18:51 -0000
- Subject: [Bug target/39148] New: -Os increase code size when stack is aligned
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
[hjl@gnu-6 pr39137]$ cat pr39137-3.i
void foo (unsigned long long *);
void
bar (void)
{
unsigned long long l __attribute__ ((aligned(32)));
foo (&l);
}
[hjl@gnu-6 pr39137]$ /export/build/gnu/gcc-work/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-avx/build-x86_64-linux/gcc/ -m32 -Os pr39137-3.i -S
[hjl@gnu-6 pr39137]$ cat pr39137-3.s
.file "pr39137-3.i"
.text
.globl bar
.type bar, @function
bar:
leal 4(%esp), %ecx
andl $-32, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $64, %esp
leal -56(%ebp), %eax
pushl %eax
call foo
movl -4(%ebp), %ecx
addl $16, %esp
leave
leal -4(%ecx), %esp
ret
.size bar, .-bar
[hjl@gnu-6 pr39137]$ /export/build/gnu/gcc-work/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-avx/build-x86_64-linux/gcc/ -m32 -O pr39137-3.i -S
[hjl@gnu-6 pr39137]$ cat pr39137-3.s
.file "pr39137-3.i"
.text
.globl bar
.type bar, @function
bar:
pushl %ebp
movl %esp, %ebp
andl $-32, %esp
subl $48, %esp
leal 16(%esp), %eax
movl %eax, (%esp)
call foo
leave
ret
.size bar, .-bar
[hjl@gnu-6 pr39137]$
-Os generates bigger binary.
--
Summary: -Os increase code size when stack is aligned
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39148