Hi Bernd,

Bernd Brassel wrote:
Hi David,

thank you! This is really useful information!

I think it's the let floating (out) together with common subexpression elimination:

 > ghc --make -O2 -no-recomp -fno-cse  -o curry-no-cse  curry.hs
[1 of 1] Compiling Main             ( curry.hs, curry.o )
Linking curry-no-cse ...
 > ghc --make -O2 -no-recomp -fno-full-laziness  -o curry-no-fll  curry.hs
[1 of 1] Compiling Main             ( curry.hs, curry.o )
Linking curry-no-fll ...
> ghc --make -O2 -no-recomp -fno-full-laziness -fno-cse -o curry-no-cse-no-fll curry.hs
[1 of 1] Compiling Main             ( curry.hs, curry.o )
Linking curry-no-cse-no-fll ...
 > ./curry-no-cse
3 possibilities: [True,False]
2 possibilities: [True,False]
 > ./curry-no-fll
3 possibilities: [True,False]
2 possibilities: [True,False]
 > ./curry-no-cse-no-fll
3 possibilities: [True,True,False]
2 possibilities: [True,False]

I will try this on large scale Curry programs. I hope the remaining
optimizations will still do some good. Do you think that there is a way
to be more selective? I mean to select those parts of the program which
can and which cannot be optimized?
I think this would require an analysis of the code during compilation (to split into "pure" parts and "impure" parts),
but we did not investigate this.

ps.: Maybe it is interesting to look at HasFuse [1] (somewhat outdated), but it exactly forbids both transformations

[1] http://www.ki.informatik.uni-frankfurt.de/research/diamond/hasfuse/

Yes, that looks interesting, too. Are there plans to update it with the
ghc?
Honestly, we did nothing since 2004 on the code, but maybe we could port the changes to the current source of ghc.

I remember that in an early version of ghc (I think < 5) there was an option
-O file which gave the user control over the optimizations with a script,
this would probably a nice feature to have again...

Regards,
David
Thanks for your hints!
Bernd
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

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

Reply via email to