Optimisation and unsafePerformIO

David Sabel DavidSabel@web.de
Wed, 30 Oct 2002 10:55:26 +0100


----- Original Message ----- 
From: "Albert Lai" <trebla@vex.net>
To: <glasgow-haskell-users@haskell.org>
Sent: Wednesday, October 30, 2002 7:35 AM
Subject: Re: Optimisation and unsafePerformIO


> "David Sabel" <dsabel@stud.uni-frankfurt.de> writes:
> 
> > {-# NOINLINE b #-}
> > 
> > b x  = if even x then unsafePerformIO getChar else bot
> > 
> > bot = bot
> > 
> > main = do
> >          putChar (b 4)
> >          putChar (b 6)
> 
> I am not a compiler implementer (or lawyer, for that matter :)
> But I propose this guess.  First, both even 4 and even 6 get
> constant-folded to True; so b 4 and b 6 both become unsafePerformIO
> getChar.  Then there is a common subexpression elimination.

No! I used the option -fno-cse, what means that common supexpression
elimination is turned off.

> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users@haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users