develooper Front page | perl.perl5.porters | Postings from August 2010

Re: [perl #76438] peephole optimiser could prune more dead code

Thread Previous | Thread Next
From:
Aristotle Pagaltzis
Date:
August 6, 2010 07:10
Subject:
Re: [perl #76438] peephole optimiser could prune more dead code
Message ID:
20100806140959.GA6672@klangraum.plasmasturm.org
* Eric Brine <ikegami@adaelis.com> [2010-07-12 06:55]:
> On Sun, Jul 11, 2010 at 10:22 PM, David Golden <xdaveg@gmail.com> wrote:
> > I'm suggesting that we disclaim any implicit guarantee that the
> > compiler won't optimize away expressions that have side effects when
> > evaluated.
> >
>
> Without that guarantee,
>
> my $x = f()
>    or DEBUG && warn(...);
> return $x;
>
> would be buggy. Dunno if that matters

Why?

As far as I can tell, the compiler would statically determine
that it can optimise the `DEBUG && warn` part down to `!1` when
`DEBUG` is false. This seems correct to me.

It would also statically determine that an `or !1` clause in that
statement does nothing, and so fold it away altogether.

That would leave the code looking like

    my $x = f();
    return $x;

when `DEBUG` is false.

Which seems 100% on the mark to me.

Am I missing something in your objection?

Regards,
-- 
Aristotle Pagaltzis // <http://plasmasturm.org/>

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About