This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/32429] New: [PPC, missing optimization] stack space not optimized when stack not used
- From: "sparky at pld-linux dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Jun 2007 15:19:19 -0000
- Subject: [Bug middle-end/32429] New: [PPC, missing optimization] stack space not optimized when stack not used
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
A variety of options prepare some additional space on the stack. It isn't
optimized when stack isn't used. Those options are:
version options
3.3 -fpic -fPIC -mabi=altivec
4.1.2 -fpic -fPIC -fpie -fPIE -maltivec
4.2.0 -fpic -fPIC -fpie -fPIE -maltivec
4.3-pre -fpic -fPIC -fpie -fPIE
problem with -maltivec has been partially fixed in 4.3 (see bug 32401)
$ gcc-3.3 --version
gcc-3.3 (GCC) 3.3.6 (Debian 1:3.3.6-15)
$ gcc-3.3 -S -O2 empty.c && grep -A3 "empty:" empty.s
empty:
blr
.size empty, .-empty
.section .note.GNU-stack,"",@progbits
$ gcc-3.3 -S -O2 -fpic empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-32(1)
addi 1,1,32
blr
$ gcc-3.3 -S -O2 -fPIC empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-32(1)
addi 1,1,32
blr
$ gcc-3.3 -S -O2 -maltivec empty.c && grep -A3 "empty:" empty.s
empty:
blr
.size empty, .-empty
.section .note.GNU-stack,"",@progbits
$ gcc-3.3 -S -O2 -maltivec -mabi=altivec empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc-3.3 -S -O2 -fpic -maltivec -mabi=altivec empty.c && grep -A3 "empty:"
empty.s
empty:
stwu 1,-32(1)
addi 1,1,32
blr
$ gcc-3.3 -S -O2 -fPIC -maltivec -mabi=altivec empty.c && grep -A3 "empty:"
empty.s
empty:
stwu 1,-32(1)
addi 1,1,32
blr
$ gcc --version
gcc (GCC) 4.1.2 (PLD-Linux)
$ gcc -S -O2 empty.c && grep -A3 "empty:" empty.s
empty:
blr
.size empty, .-empty
.ident "GCC: (GNU) 4.1.2 (PLD-Linux)"
$ gcc -S -O2 -fpic empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc -S -O2 -fPIC empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc -S -O2 -fpie empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc -S -O2 -fPIE empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc -S -O2 -maltivec empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc -S -O2 -maltivec -mabi=altivec empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc -S -O2 -fpic -maltivec -mabi=altivec empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-32(1)
addi 1,1,32
blr
$ gcc -S -O2 -fpie -maltivec -mabi=altivec empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-32(1)
addi 1,1,32
blr
$ gcc-4.3 --version
gcc-4.3 (GCC) 4.3.0 20070615 (experimental)
$ gcc-4.3 -S -O2 empty.c && grep -A3 "empty:" empty.s
empty:
blr
.size empty, .-empty
.ident "GCC: (GNU) 4.3.0 20070615 (experimental)"
$ gcc-4.3 -S -O2 -fpic empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc-4.3 -S -O2 -fPIC empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc-4.3 -S -O2 -fpie empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc-4.3 -S -O2 -fPIE empty.c && grep -A3 "empty:" empty.s
empty:
stwu 1,-16(1)
addi 1,1,16
blr
$ gcc-4.3 -S -O2 -maltivec empty.c && grep -A3 "empty:" empty.s
empty:
blr
.size empty, .-empty
.ident "GCC: (GNU) 4.3.0 20070615 (experimental)"
$ gcc-4.3 -S -O2 -maltivec -mabi=altivec empty.c && grep -A3 "empty:" empty.s
empty:
blr
.size empty, .-empty
.ident "GCC: (GNU) 4.3.0 20070615 (experimental)"
$ gcc-4.3 -S -O2 -fpic -maltivec -mabi=altivec empty.c && grep -A3 "empty:"
empty.s
empty:
stwu 1,-32(1)
addi 1,1,32
blr
$ gcc-4.3 -S -O2 -fPIC -maltivec -mabi=altivec empty.c && grep -A3 "empty:"
empty.s
empty:
stwu 1,-32(1)
addi 1,1,32
blr
$ gcc-4.3 -S -O2 -fpie -maltivec -mabi=altivec empty.c && grep -A3 "empty:"
empty.s
empty:
stwu 1,-32(1)
addi 1,1,32
blr
$ gcc-4.3 -S -O2 -fPIE -maltivec -mabi=altivec empty.c && grep -A3 "empty:"
empty.s
empty:
stwu 1,-32(1)
addi 1,1,32
blr
--
Summary: [PPC, missing optimization] stack space not optimized
when stack not used
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sparky at pld-linux dot org
GCC target triplet: powerpc-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32429