This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/17549] [4.0 Regression] 25% increase in codesize (3.3.4 -> 4.0.0 20040917)
- From: "miguel55angel at hotmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 19 Sep 2004 12:00:45 -0000
- Subject: [Bug c/17549] [4.0 Regression] 25% increase in codesize (3.3.4 -> 4.0.0 20040917)
- References: <20040918113641.17549.miguel55angel@hotmail.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From miguel55angel at hotmail dot com 2004-09-19 12:00 -------
Hi,
the function "susan_edges" shows a 77% increase in code size even
when compiled with -fno-ivopts:
text data bss dec hex filename
2772 0 0 2772 ad4 susan_edges_334.o
text data bss dec hex filename
2905 0 0 2905 b59 susan_edges_342.o
text data bss dec hex filename
4930 0 0 4930 1342 susan_edges_400.o
I'm seeing a block of MOVs in the 4.0.0 disassembly code
if (z > (0.9*(float)n)) /* 0.5 */
910: db 85 e8 fd ff ff fildl 0xfffffde8(%ebp)
916: dd 05 00 00 00 00 fldl 0x0
91c: de c9 fmulp %st,%st(1)
91e: d9 c9 fxch %st(1)
920: da e9 fucompp
922: df e0 fnstsw %ax
924: 9e sahf
925: 0f 87 9d 01 00 00 ja ac8 <susan_edges+0xac8>
92b: 8b 95 ec fd ff ff mov 0xfffffdec(%ebp),%edx
931: 8b 9d d0 fd ff ff mov 0xfffffdd0(%ebp),%ebx
937: 8b b5 a0 fe ff ff mov 0xfffffea0(%ebp),%esi
93d: 8b 85 a4 fe ff ff mov 0xfffffea4(%ebp),%eax
943: 89 95 04 fe ff ff mov %edx,0xfffffe04(%ebp)
949: 8b 95 a8 fe ff ff mov 0xfffffea8(%ebp),%edx
94f: 89 9d 0c fe ff ff mov %ebx,0xfffffe0c(%ebp)
955: 8b 9d b0 fe ff ff mov 0xfffffeb0(%ebp),%ebx
95b: 89 b5 10 fe ff ff mov %esi,0xfffffe10(%ebp)
961: 8b b5 b4 fe ff ff mov 0xfffffeb4(%ebp),%esi
967: 8b 8d 9c fe ff ff mov 0xfffffe9c(%ebp),%ecx
96d: 89 85 14 fe ff ff mov %eax,0xfffffe14(%ebp)
973: 8b 85 b8 fe ff ff mov 0xfffffeb8(%ebp),%eax
979: 89 95 18 fe ff ff mov %edx,0xfffffe18(%ebp)
97f: 8b 95 bc fe ff ff mov 0xfffffebc(%ebp),%edx
985: 89 9d 28 fe ff ff mov %ebx,0xfffffe28(%ebp)
98b: 8b 9d c0 fe ff ff mov 0xfffffec0(%ebp),%ebx
991: 89 b5 2c fe ff ff mov %esi,0xfffffe2c(%ebp)
997: 8b b5 c4 fe ff ff mov 0xfffffec4(%ebp),%esi
99d: 89 8d 08 fe ff ff mov %ecx,0xfffffe08(%ebp)
9a3: 8b 8d ac fe ff ff mov 0xfffffeac(%ebp),%ecx
9a9: 89 85 30 fe ff ff mov %eax,0xfffffe30(%ebp)
9af: 8b 85 18 ff ff ff mov 0xffffff18(%ebp),%eax
9b5: 89 95 34 fe ff ff mov %edx,0xfffffe34(%ebp)
9bb: 8b 95 c8 fe ff ff mov 0xfffffec8(%ebp),%edx
9c1: 89 9d 38 fe ff ff mov %ebx,0xfffffe38(%ebp)
9c7: 8b 9d cc fe ff ff mov 0xfffffecc(%ebp),%ebx
9cd: 89 b5 40 fe ff ff mov %esi,0xfffffe40(%ebp)
9d3: 8b b5 d0 fe ff ff mov 0xfffffed0(%ebp),%esi
9d9: 89 8d 20 fe ff ff mov %ecx,0xfffffe20(%ebp)
9df: 8b 8d 14 ff ff ff mov 0xffffff14(%ebp),%ecx
9e5: 89 85 48 fe ff ff mov %eax,0xfffffe48(%ebp)
9eb: 89 95 4c fe ff ff mov %edx,0xfffffe4c(%ebp)
9f1: 89 9d 50 fe ff ff mov %ebx,0xfffffe50(%ebp)
9f7: 89 b5 54 fe ff ff mov %esi,0xfffffe54(%ebp)
9fd: 8b 85 d4 fe ff ff mov 0xfffffed4(%ebp),%eax
a03: 8b 9d dc fe ff ff mov 0xfffffedc(%ebp),%ebx
a09: 8b b5 e0 fe ff ff mov 0xfffffee0(%ebp),%esi
a0f: 8b 95 d8 fe ff ff mov 0xfffffed8(%ebp),%edx
a15: 89 85 58 fe ff ff mov %eax,0xfffffe58(%ebp)
a1b: 8b 85 e4 fe ff ff mov 0xfffffee4(%ebp),%eax
a21: 89 9d 8c fd ff ff mov %ebx,0xfffffd8c(%ebp)
a27: 8b 9d e8 fe ff ff mov 0xfffffee8(%ebp),%ebx
a2d: 89 b5 64 fe ff ff mov %esi,0xfffffe64(%ebp)
a33: 8b b5 ec fe ff ff mov 0xfffffeec(%ebp),%esi
a39: 89 95 5c fe ff ff mov %edx,0xfffffe5c(%ebp)
a3f: 8b 95 1c ff ff ff mov 0xffffff1c(%ebp),%edx
a45: 89 85 68 fe ff ff mov %eax,0xfffffe68(%ebp)
a4b: 8b 85 f0 fe ff ff mov 0xfffffef0(%ebp),%eax
a51: 89 9d 6c fe ff ff mov %ebx,0xfffffe6c(%ebp)
a57: 8b 9d f4 fe ff ff mov 0xfffffef4(%ebp),%ebx
a5d: 89 b5 70 fe ff ff mov %esi,0xfffffe70(%ebp)
a63: 8b b5 f8 fe ff ff mov 0xfffffef8(%ebp),%esi
a69: 89 85 74 fe ff ff mov %eax,0xfffffe74(%ebp)
a6f: 8b 85 fc fe ff ff mov 0xfffffefc(%ebp),%eax
a75: 89 9d 78 fe ff ff mov %ebx,0xfffffe78(%ebp)
a7b: 8b 9d 00 ff ff ff mov 0xffffff00(%ebp),%ebx
a81: 89 b5 7c fe ff ff mov %esi,0xfffffe7c(%ebp)
a87: 8b b5 04 ff ff ff mov 0xffffff04(%ebp),%esi
a8d: 89 85 80 fe ff ff mov %eax,0xfffffe80(%ebp)
a93: 8b 85 08 ff ff ff mov 0xffffff08(%ebp),%eax
a99: 89 9d 84 fe ff ff mov %ebx,0xfffffe84(%ebp)
a9f: 8b 9d 0c ff ff ff mov 0xffffff0c(%ebp),%ebx
aa5: 89 b5 8c fe ff ff mov %esi,0xfffffe8c(%ebp)
aab: 8b b5 10 ff ff ff mov 0xffffff10(%ebp),%esi
ab1: 89 85 90 fe ff ff mov %eax,0xfffffe90(%ebp)
ab7: 89 9d 94 fe ff ff mov %ebx,0xfffffe94(%ebp)
abd: 89 b5 98 fe ff ff mov %esi,0xfffffe98(%ebp)
ac3: e9 8c 02 00 00 jmp d54 <susan_edges+0xd54>
{
do_symmetry=0;
if (x==0)
ac8: 83 bd 48 ff ff ff 00 cmpl $0x0,0xffffff48(%ebp)
in the function "susan_edges" when compiled with
gcc -c -Os susan_edges.c -g -o susan_edges.o -fno-ivopts
and dissassembled with
objdump -DS susan_edges.o
HTH,
Miguel
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17549