[Bug target/19686] New: avr-gcc 4.0: loop performance decrease (extra conversion)
dmixm at marine dot febras dot ru
gcc-bugzilla@gcc.gnu.org
Sat Jan 29 06:50:00 GMT 2005
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
More information about the Gcc-bugs
mailing list