This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/19686] New: avr-gcc 4.0: loop performance decrease (extra conversion)
- From: "dmixm at marine dot febras dot ru" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 29 Jan 2005 06:50:38 -0000
- Subject: [Bug target/19686] New: avr-gcc 4.0: loop performance decrease (extra conversion)
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Program:
int foo (int x)
{
int i= x;
do {
x *= 2;
} while (--i);
return x;
}
avr-gcc 4.0 (20050116) with `-Os' option:
foo:
/* prologue: frame size=0 */
/* prologue end (size=0) */
ldi r18,lo8(0)
ldi r19,hi8(0)
clr r20
clr r21
sub r20,r24
sbc r21,r25
.L2:
add r24,r24
adc r25,r25
subi r18,lo8(-(-1))
sbci r19,hi8(-(-1))
cp r18,r20
cpc r19,r21
brne .L2
/* epilogue: frame size=0 */
ret
avr-gcc 3.3.4:
foo:
/* prologue: frame size=0 */
/* prologue end (size=0) */
mov r18,r24
mov r19,r25
.L2:
add r24,r24
adc r25,r25
subi r18,lo8(-(-1))
sbci r19,hi8(-(-1))
brne .L2
/* epilogue: frame size=0 */
ret
--
Summary: avr-gcc 4.0: loop performance decrease (extra
conversion)
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dmixm at marine dot febras dot ru
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19686