Article View: fr.comp.lang.c
Article #15649Re: post/pre incrementations et bugs de compilos
From: Jean-Marc Bourguet
Date: Wed, 14 Sep 2005 11:24
Date: Wed, 14 Sep 2005 11:24
65 lines
3630 bytes
3630 bytes
"Charlie Gordon" <news@chqrlie.org> writes:
> "Jean-Marc Bourguet" <jm@bourguet.org> wrote in message
> news:pxb8xy21qk8.fsf@news.bourguet.org...
> > "Antoine Leca" <root@localhost.invalid> writes:
> >
> > > En <news:pxbhdcq1z5u.fsf@news.bourguet.org>,
> > > Jean-Marc Bourguet va escriure:
> > > > Autrement dit
> > > > int f(int a, int b) { return a * b; }
> > > > i = 0;
> > > > k = f(i++, i++);
> > > > on sait qu'apres l'execution k vaut 0 et i 2 mais on ne sait pas si
> > > > l'appel c'est fait avec a=0 et b=1 ou bien a=1 et b=0.
> > >
> > > Ou m�me a=0 b=0.
> >
> > Oops, j'ai ete voir aux sources plutot que de me baser sur ma memoire
> > -- ce que je devrais faire quand il s'agit de points dont je ne me
> > sert de toute facon pas -- et contrairement a ce que je pensais il n'y
> > a pas de point de sequence entre les evaluations des arguments mais
> > uniquement avant l'appel de la fonction.
>
> Exact, ce qui permet par exemple d'evaluer en parall�le sur les
> architectures qui le permettent les expressions des param�tres de f.
Ce n'est permis evidemment que quand ces parametres sont des
expressions sans appels de fonction, sinon il y a quelques points de
sequencement en plus (mais leur ordre relatif n'est pas fixe). Pour
reprendre mon exemple:
int incr(int* i) {
return (*i)++;
}
i = 0;
k = f(incr(i), incr(i));
ici on est sur que l'appel a f se fait avec a=0 et b=1 ou a=1 et b=0.
(Ou alors il y a autre chose qui m'echappe).
Plus subtil, est-ce que
k = f(incr(i), i++);
a les memes garanties? (Pas le temps de faire un exegese pour essayer
d'apporter une reponse). Naturellement, je laisse
int j = 0;
incr(int*i) { j++; return (*i)++;}
k = f(incr(i), i++ + j++);
a ceux qui veulent reellement s'amuser.
Une chose qui m'echappe c'est un exemple realiste ou ca apporte un
gain et ou la regle du "as-if" ne permet pas le meme gain. Il faut
avouer que j'ai le meme probleme pour l'ordre d'evaluation des
parametres (si j'admets que ca simplifie un peu le compilateur, je ne
percois pas de gain en performance).
A+
--
Jean-Marc
FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Technical Details
Message-ID:
<pxbmzmfyjrf.fsf@news.bourguet.org>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.icl.net!newsfeed.fjserv.net!news-lond.gip.net!news.gsl.net!gip.net!news.tele.dk!news.tele.dk!small.news.tele.dk!proxad.net!infeed-4.proxad.net!news2-1.free.fr!not-for-mailReferences:
<43207e0a$0$162$a3f2974a@nnrp1.numericable.fr> <dfrnh7$j63$1@news.hispeed.ch> <dfrvtp$j9u$1@shakotay.alphanet.ch> <4321fb01$0$21296$7a628cd7@news.club-internet.fr> <mn.52367d59df2fc1aa.31483@laposte.net> <dg23un$9f5$1@reader1.imaginet.fr> <pxbhdcq1z5u.fsf@news.bourguet.org> <dg3iss$p5s$1@shakotay.alphanet.ch> <pxb8xy21qk8.fsf@news.bourguet.org> <dg8pns$gto$1@reader1.imaginet.fr>Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,d07db62495be07f8 X-Google-Attributes: gidf9822,public X-Google-Language: FRENCH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.icl.net!newsfeed.fjserv.net!news-lond.gip.net!news.gsl.net!gip.net!news.tele.dk!news.tele.dk!small.news.tele.dk!proxad.net!infeed-4.proxad.net!news2-1.free.fr!not-for-mail Newsgroups: fr.comp.lang.c Subject: Re: post/pre incrementations et bugs de compilos References: <43207e0a$0$162$a3f2974a@nnrp1.numericable.fr> <dfrnh7$j63$1@news.hispeed.ch> <dfrvtp$j9u$1@shakotay.alphanet.ch> <4321fb01$0$21296$7a628cd7@news.club-internet.fr> <mn.52367d59df2fc1aa.31483@laposte.net> <dg23un$9f5$1@reader1.imaginet.fr> <pxbhdcq1z5u.fsf@news.bourguet.org> <dg3iss$p5s$1@shakotay.alphanet.ch> <pxb8xy21qk8.fsf@news.bourguet.org> <dg8pns$gto$1@reader1.imaginet.fr> From: Jean-Marc Bourguet <jm@bourguet.org> Message-ID: <pxbmzmfyjrf.fsf@news.bourguet.org> Date: 14 Sep 2005 13:24:36 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Lines: 65 Organization: Guest of ProXad - France NNTP-Posting-Date: 14 Sep 2005 13:24:36 MEST NNTP-Posting-Host: 62.189.36.28 X-Trace: 1126697076 news2-1.free.fr 14384 62.189.36.28:11921 X-Complaints-To: abuse@proxad.net