delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2005/11/08/04:01:54

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019