This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/19923] openssl is slower when compiled with gcc 4.0 than 3.3
- From: "rakdver at atrey dot karlin dot mff dot cuni dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 Jun 2005 08:01:14 -0000
- Subject: [Bug target/19923] openssl is slower when compiled with gcc 4.0 than 3.3
- References: <20050212153001.19923.gj@pointblue.com.pl>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From rakdver at atrey dot karlin dot mff dot cuni dot cz 2005-06-02 08:01 -------
Subject: Re: openssl is slower when compiled with gcc 4.0 than 3.3
The assembler attributed to 4.0 was produced by mainline (or some
patched version of 4.0), wasn't it?
Otherwise I cannot imagine why the inner loop would be unrolled.
For plain 4.0, we get the following code, which seems just fine
and equivalent to the one obtained with 3.4 (one of the memory
references is strength reduced, but since we still fit into registers,
this is OK).
I don't just now see what/whether there is some problem with the code
produced by 4.1, but I also don't see anything related to addressing
mode selection there.
.L21:
movl S@GOTOFF(%ebx,%eax,4), %eax
xorl (%edx), %eax
movl %eax, (%edx)
movl S@GOTOFF(%ebx,%eax,4), %eax
xorl 4(%edx), %eax
movl %eax, 4(%edx)
movl S@GOTOFF(%ebx,%eax,4), %eax
xorl 8(%edx), %eax
movl %eax, 8(%edx)
movl S@GOTOFF(%ebx,%eax,4), %eax
xorl 12(%edx), %eax
movl %eax, 12(%edx)
movl S@GOTOFF(%ebx,%eax,4), %eax
xorl 16(%edx), %eax
movl %eax, 16(%edx)
movl S@GOTOFF(%ebx,%eax,4), %eax
xorl 20(%edx), %eax
movl %eax, 20(%edx)
movl S@GOTOFF(%ebx,%eax,4), %eax
xorl 24(%edx), %eax
movl %eax, 24(%edx)
movl S@GOTOFF(%ebx,%eax,4), %eax
xorl 28(%edx), %eax
movl %eax, 28(%edx)
addl $32, %edx
leal -12(%ebp), %esi
cmpl %esi, %edx
jne .L21
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19923