This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: optimization/10620: for(i=25000;i;i--) {} generates wrong assemblysource in avr-gcc with -O2
- From: Nagy Endre <gumo at lucifer dot kgt dot bme dot hu>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 9 May 2003 08:56:01 -0000
- Subject: Re: optimization/10620: for(i=25000;i;i--) {} generates wrong assemblysource in avr-gcc with -O2
- Reply-to: Nagy Endre <gumo at lucifer dot kgt dot bme dot hu>
The following reply was made to PR optimization/10620; it has been noted by GNATS.
From: Nagy Endre <gumo@lucifer.kgt.bme.hu>
To: Dara Hazeghi <dhazeghi@yahoo.com>
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: optimization/10620: for(i=25000;i;i--) {} generates wrong assembly
source in avr-gcc with -O2
Date: Fri, 9 May 2003 10:53:41 +0200 (CEST)
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
--1117258244-1711166521-1052470239=:25817
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.55.0305091050421.25817@lucifer.kgt.bme.hu>
> could the submitter of this bug please include a full testcase that
> demonstrates the bug (ie something that will compile without
> additions). I cannot replicate the assembly in question using 3.3
> branch and:
> void main(){int i;for(i=25000;i;i--){}}
Yes, of course.
The simplest case is:
=================================
int main(void) {
unsigned int i,j;
for(j=500;j;j--) {
for(i=25000;i;i--) {}
}
return 0;
}
=================================
So that i is allocated in narrow registers. The resulting asm code
varies depending on the initial value of i, if it is less than 32768.
The inner loop will be:
.L10:
subi r18,lo8(-(-25))
sbci r19,hi8(-(-25))
brne .L10
Where -25 varies depending on i.
The compiler command:
avr-gcc -g -Wall -O2 -mmcu=at90s8515 -S -o test2.S test2.c
(see attachments)
I've used the gcc-3.3 prerelease included in WinAVR:
http://prdownloads.sourceforge.net/winavr/WinAVR-20030424-bin-install.exe?download
Excuse me for being inaccurate.
Thanks,
Gumo
--1117258244-1711166521-1052470239=:25817
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="test2.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.55.0305091050390.25817@lucifer.kgt.bme.hu>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="test2.c"
aW50IG1haW4odm9pZCkgew0KICAgIHVuc2lnbmVkIGludCBpLGo7DQogICAg
Zm9yKGo9NTAwO2o7ai0tKSB7DQogICAgICAgIGZvcihpPTI1MDAwO2k7aS0t
KSB7fQ0KICAgIH0NCiAgICByZXR1cm4gMDsNCn0NCg==
--1117258244-1711166521-1052470239=:25817
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="test2.S"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.55.0305091050391.25817@lucifer.kgt.bme.hu>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="test2.S"
CS5maWxlCSJ0ZXN0Mi5jIg0NCgkuYXJjaCBhdDkwczg1MTUNDQpfX1NSRUdf
XyA9IDB4M2YNDQpfX1NQX0hfXyA9IDB4M2UNDQpfX1NQX0xfXyA9IDB4M2QN
DQpfX3RtcF9yZWdfXyA9IDANDQpfX3plcm9fcmVnX18gPSAxDQ0KCS5nbG9i
YWwgX19kb19jb3B5X2RhdGENDQoJLmdsb2JhbCBfX2RvX2NsZWFyX2Jzcw0N
Cgkuc3RhYnMJIkM6XFxHVU1PXFxwcm9nXFxhdG1lbF9jXFxPUzg1MTUvIiwx
MDAsMCwwLC5MdGV4dDANDQoJLnN0YWJzCSJ0ZXN0Mi5jIiwxMDAsMCwwLC5M
dGV4dDANDQoJLnRleHQNDQouTHRleHQwOg0NCgkuc3RhYnMJImdjYzJfY29t
cGlsZWQuIiw2MCwwLDAsMA0NCgkuc3RhYnMJImludDp0KDAsMSk9cigwLDEp
Oy0zMjc2ODszMjc2NzsiLDEyOCwwLDAsMA0NCgkuc3RhYnMJImNoYXI6dCgw
LDIpPXIoMCwyKTswOzEyNzsiLDEyOCwwLDAsMA0NCgkuc3RhYnMJImxvbmcg
aW50OnQoMCwzKT1AczMyO3IoMCwzKTswMDIwMDAwMDAwMDAwOzAwMTc3Nzc3
Nzc3Nzc7IiwxMjgsMCwwLDANDQoJLnN0YWJzCSJ1bnNpZ25lZCBpbnQ6dCgw
LDQpPXIoMCw0KTswMDAwMDAwMDAwMDAwOzAwMDAwMDAxNzc3Nzc7IiwxMjgs
MCwwLDANDQoJLnN0YWJzCSJsb25nIHVuc2lnbmVkIGludDp0KDAsNSk9QHMz
MjtyKDAsNSk7MDAwMDAwMDAwMDAwMDswMDM3Nzc3Nzc3Nzc3OyIsMTI4LDAs
MCwwDQ0KCS5zdGFicwkibG9uZyBsb25nIGludDp0KDAsNik9QHM2NDtyKDAs
Nik7MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDA7MDc3Nzc3Nzc3Nzc3Nzc3Nzc3
Nzc3NzsiLDEyOCwwLDAsMA0NCgkuc3RhYnMJImxvbmcgbG9uZyB1bnNpZ25l
ZCBpbnQ6dCgwLDcpPUBzNjQ7cigwLDcpOzAwMDAwMDAwMDAwMDA7MDE3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc7IiwxMjgsMCwwLDANDQoJLnN0YWJzCSJzaG9y
dCBpbnQ6dCgwLDgpPXIoMCw4KTstMzI3Njg7MzI3Njc7IiwxMjgsMCwwLDAN
DQoJLnN0YWJzCSJzaG9ydCB1bnNpZ25lZCBpbnQ6dCgwLDkpPXIoMCw5KTsw
MDAwMDAwMDAwMDAwOzAwMDAwMDAxNzc3Nzc7IiwxMjgsMCwwLDANDQoJLnN0
YWJzCSJzaWduZWQgY2hhcjp0KDAsMTApPUBzODtyKDAsMTApOy0xMjg7MTI3
OyIsMTI4LDAsMCwwDQ0KCS5zdGFicwkidW5zaWduZWQgY2hhcjp0KDAsMTEp
PUBzODtyKDAsMTEpOzA7MjU1OyIsMTI4LDAsMCwwDQ0KCS5zdGFicwkiZmxv
YXQ6dCgwLDEyKT1yKDAsMSk7NDswOyIsMTI4LDAsMCwwDQ0KCS5zdGFicwki
ZG91YmxlOnQoMCwxMyk9cigwLDEpOzQ7MDsiLDEyOCwwLDAsMA0NCgkuc3Rh
YnMJImxvbmcgZG91YmxlOnQoMCwxNCk9cigwLDEpOzQ7MDsiLDEyOCwwLDAs
MA0NCgkuc3RhYnMJImNvbXBsZXggaW50OnQoMCwxNSk9czRyZWFsOigwLDEp
LDAsMTY7aW1hZzooMCwxKSwxNiwxNjs7IiwxMjgsMCwwLDANDQoJLnN0YWJz
CSJjb21wbGV4IGZsb2F0OnQoMCwxNik9UjM7ODswOyIsMTI4LDAsMCwwDQ0K
CS5zdGFicwkiY29tcGxleCBkb3VibGU6dCgwLDE3KT1SMzs4OzA7IiwxMjgs
MCwwLDANDQoJLnN0YWJzCSJjb21wbGV4IGxvbmcgZG91YmxlOnQoMCwxOCk9
UjM7ODswOyIsMTI4LDAsMCwwDQ0KCS5zdGFicwkiX19idWlsdGluX3ZhX2xp
c3Q6dCgwLDE5KT0qKDAsMjApPSgwLDIwKSIsMTI4LDAsMCwwDQ0KCS5zdGFi
cwkiX0Jvb2w6dCgwLDIxKT1Aczg7LTE2OyIsMTI4LDAsMCwwDQ0KCS5zdGFi
cwkidGVzdDIuYyIsMTMwLDAsMCwwDQ0KCS5zdGFicwkibWFpbjpGKDAsMSki
LDM2LDAsMSxtYWluDQ0KLmdsb2JhbAltYWluDQ0KCS50eXBlCW1haW4sIEBm
dW5jdGlvbg0NCm1haW46DQ0KCS5zdGFibiA2OCwwLDEsLkxNMS1tYWluDQ0K
LkxNMToNDQovKiBwcm9sb2d1ZTogZnJhbWUgc2l6ZT0wICovDQ0KCWxkaSBy
MjgsbG84KF9fc3RhY2sgLSAwKQ0NCglsZGkgcjI5LGhpOChfX3N0YWNrIC0g
MCkNDQoJb3V0IF9fU1BfSF9fLHIyOQ0NCglvdXQgX19TUF9MX18scjI4DQ0K
LyogcHJvbG9ndWUgZW5kIChzaXplPTQpICovDQ0KCS5zdGFibiA2OCwwLDMs
LkxNMi1tYWluDQ0KLkxNMjoNDQouTEJCMjoNDQoJbGRpIHIyNCxsbzgoNTAw
KQ0NCglsZGkgcjI1LGhpOCg1MDApDQ0KLkwxMToNDQoJLnN0YWJuIDY4LDAs
NCwuTE0zLW1haW4NDQouTE0zOg0NCglsZGkgcjE4LGxvOCgyNTAwMCkNDQoJ
bGRpIHIxOSxoaTgoMjUwMDApDQ0KLkwxMDoNDQoJc3ViaSByMTgsbG84KC0o
LTI1KSkNDQoJc2JjaSByMTksaGk4KC0oLTI1KSkNDQoJYnJuZSAuTDEwDQ0K
CS5zdGFibiA2OCwwLDMsLkxNNC1tYWluDQ0KLkxNNDoNDQoJc2JpdyByMjQs
MQ0NCglicm5lIC5MMTENDQoJLnN0YWJuIDY4LDAsNywuTE01LW1haW4NDQou
TE01Og0NCi5MQkUyOg0NCi8qIGVwaWxvZ3VlOiBmcmFtZSBzaXplPTAgKi8N
DQoJcmptcCBleGl0DQ0KLyogZXBpbG9ndWUgZW5kIChzaXplPTEpICovDQ0K
LyogZnVuY3Rpb24gbWFpbiBzaXplIDE3ICgxMikgKi8NDQoJLnNpemUJbWFp
biwgLi1tYWluDQ0KCS5zdGFicwkiaTpyKDAsNCkiLDY0LDAsMiwxOA0NCgku
c3RhYnMJImo6cigwLDQpIiw2NCwwLDIsMjQNDQoJLnN0YWJuCTE5MiwwLDAs
LkxCQjItbWFpbg0NCgkuc3RhYm4JMjI0LDAsMCwuTEJFMi1tYWluDQ0KLkxz
Y29wZTA6DQ0KCS5zdGFicwkiIiwzNiwwLDAsLkxzY29wZTAtbWFpbg0NCgku
dGV4dA0NCgkuc3RhYnMgIiIsMTAwLDAsMCxMZXRleHQNDQpMZXRleHQ6DQ0K
LyogRmlsZSAidGVzdDIuYyI6IGNvZGUgICAxNyA9IDB4MDAxMSAoICAxMiks
IHByb2xvZ3VlcyAgIDQsIGVwaWxvZ3VlcyAgIDEgKi8NDQo=
--1117258244-1711166521-1052470239=:25817--