Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 HYLO fusion in GHC
HYLO fusion in GHC
Download
If you want to try our HYLO fusion extension to ghc-5.04.3,
please contact us.
History
Until
Target to embed our algorithm
Autumn '97:
Prototype system based on gofer2.30a.
Autumn '98:
Optimisation path in ghc-2.10,
Summer '99:
Applied for nofib benchmarks(spectral).
Now:
Optimisation path in ghc-5.04.3.
Features
No need to prepare some fusable functions (eg. foldr/build).
User defined datatype can be fused.
And more...
Example
CGI interface to hylo-fusion It's out of order, sorry.
Original Haskell Program
Optimised Core Program
Add '-fprint-core' option at last optimisation paths.
You will find an new fused function named 'fun1.fun2'.
Executed Result
'a.out' was compiled by original GHC.
'b.out' was compiled by our modified GHC.
Please compare two heap comsumption.
Next time, we will apply our method to larger programs.
Current Limitations
No mutual recursion
And more...
References
A. Takano, E. Meijer.
Shortcut Deforestation in Calculational Form,
Proc. Conf. on Functional Programming Languages and Computer Architecture,
La Jolla, California, June 1995, pp.306-313.
Y. Onoue,
Z. Hu,
H. Iwasaki,
M. Takeichi.
Verification for Practical Effectiveness of Program Fusion.
16th Conf. Proc. Jpn. Soc. for Software Sci. and Tech.,
to appeared (1999) (Japanese)