delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
From: | cbramix AT libero DOT it |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: missing optimization? |
Date: | 8 Nov 2005 00:58:41 -0800 |
Organization: | http://groups.google.com |
Lines: | 41 |
Message-ID: | <1131440321.197203.168820@z14g2000cwz.googlegroups.com> |
References: | <1131105759 DOT 132511 DOT 231360 AT g47g2000cwa DOT googlegroups DOT com> |
<436eb66f$0$4419$91cee783 AT newsreader02 DOT highway DOT telekom DOT at> | |
NNTP-Posting-Host: | 82.106.2.23 |
Mime-Version: | 1.0 |
X-Trace: | posting.google.com 1131440326 10593 127.0.0.1 (8 Nov 2005 08:58:46 GMT) |
X-Complaints-To: | groups-abuse AT google DOT com |
NNTP-Posting-Date: | Tue, 8 Nov 2005 08:58:46 +0000 (UTC) |
In-Reply-To: | <436eb66f$0$4419$91cee783@newsreader02.highway.telekom.at> |
User-Agent: | G2/0.2 |
X-HTTP-UserAgent: | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1),gzip(gfe),gzip(gfe) |
Complaints-To: | groups-abuse AT google DOT com |
Injection-Info: | z14g2000cwz.googlegroups.com; posting-host=82.106.2.23; |
posting-account=2QKFyAwAAACmXX-HdPjfH6A4KB1YwZKs | |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Errors-To: | nobody AT delorie DOT com |
X-Mailing-List: | djgpp AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
Hello, It's exactly you wrote into your commented assembly: the TEST opcode isn't needed. But as I wrote before, that instruction isn't emitted if I use a previous version, so I was wondering if the code could rewritten in a better way. I make you another small example: let's see these C lines: (my_structure+0)->data = my_var++; (my_structure+1)->data = my_var++; The compiler generates this: movl %ebx, %eax leal 1(%ebx), %ebx movl %eax, (%esi) movl %ebx, %eax leal 1(%ebx), %ebx movl %eax, 4(%esi) But if I rewrite it to: (my_structure+0)->data = my_var; (my_structure+1)->data = ++my_var; my_var++; I get this: movl %ebx, (%esi) incl %ebx movl %ebx, 4(%esi) incl %ebx DJ said it's probably better to forward this message to GCC mailing list and now I'm going to believe he's right. Thank you for your help. Sincerely, Carlo Bramini
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |