public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/10620: for(i=25000;i;i--) {} generates wrong assembly source in avr-gcc with -O2
@ 2003-05-09  8:56 Nagy Endre
  0 siblings, 0 replies; 3+ messages in thread
From: Nagy Endre @ 2003-05-09  8:56 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

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--


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: optimization/10620: for(i=25000;i;i--) {} generates wrong assembly source in avr-gcc with -O2
@ 2003-05-09  8:16 Dara Hazeghi
  0 siblings, 0 replies; 3+ messages in thread
From: Dara Hazeghi @ 2003-05-09  8:16 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/10620; it has been noted by GNATS.

From: Dara Hazeghi <dhazeghi@yahoo.com>
To: gcc-gnats@gcc.gnu.org, gumo@lucifer.kgt.bme.hu
Cc:  
Subject: Re: optimization/10620: for(i=25000;i;i--) {} generates wrong assembly source in avr-gcc with -O2
Date: Fri, 9 May 2003 01:15:53 -0700

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit- 
 trail&database=gcc&pr=10620
 
 Hello,
 
 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--){}}
 
 Thanks,
 
 Dara
 


^ permalink raw reply	[flat|nested] 3+ messages in thread

* optimization/10620: for(i=25000;i;i--) {} generates wrong assembly source in avr-gcc with -O2
@ 2003-05-04 14:26 gumo
  0 siblings, 0 replies; 3+ messages in thread
From: gumo @ 2003-05-04 14:26 UTC (permalink / raw)
  To: gcc-gnats

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1083 bytes --]


>Number:         10620
>Category:       optimization
>Synopsis:       for(i=25000;i;i--) {} generates wrong assembly source in avr-gcc with -O2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Sun May 04 14:26:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Endre Nagy
>Release:        gcc version 3.3 20030421 (prerelease)
>Organization:
>Environment:
Win32 -> atmel avr crosscompiler
>Description:
C code: for(i=25000;i;i--) {}
faulty machine code (it would be OK for i-=25):
ldi r18,lo8(25000)
ldi r19,hi8(25000)
.L10:·
        subi r18,lo8(-(-25))
        sbci r19,hi8(-(-25))
        brne .L10·

C code: for(i=35000;i;i--) {}
correct machine code (only initial value of i has changed):
ldi r18,lo8(-30536)
ldi r19,hi8(-30536)
.L10:
	subi r18,lo8(-(-1))
	sbci r19,hi8(-(-1))
	brne .L10

commandline:
avr-gcc -g -Wall -O2 -mmcu=at90s8515 -S -o os8515.S os8515.c
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-05-09  8:56 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-09  8:56 optimization/10620: for(i=25000;i;i--) {} generates wrong assembly source in avr-gcc with -O2 Nagy Endre
  -- strict thread matches above, loose matches on Subject: below --
2003-05-09  8:16 Dara Hazeghi
2003-05-04 14:26 gumo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).