- git clone https://github.com/ndmitchell/supero.git
- Related blog posts
- Rethinking Supercompilation - from ICFP 2010 (abstract)(hide abstract)
Supercompilation is a program optimisation technique that is particularly
effective at eliminating unnecessary overheads. We have designed a new supercompiler,
making many novel choices, including different termination criteria and handling of
let bindings. The result is a supercompiler that focuses on simplicity, compiles
programs quickly and optimises programs well. We have benchmarked our supercompiler,
with some programs running more than twice as fast than when compiled with GHC.
(bibtex)(hide bibtex)@inproceedings{mitchell:supero_2010_9_29
,title = {Rethinking Supercompilation}
,author = {Neil Mitchell}
,year = {2010}
,month = {September}
,day = {29}
,location = {Baltimore, Maryland, USA}
,pages = {309--320}
,booktitle = {ICFP '10: Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming}
,doi = {http://doi.acm.org/10.1145/1863543.1863588}
,publisher = {ACM}
,isbn = {978-1-60558-794-3}
,url = {\verb'http://community.haskell.org/~ndm/downloads/paper-rethinking_supercompilation-29_sep_2010.pdf'}
}
- Supercompilation for Haskell - from Fun in the Afternoon Spring 2009 (bibtex)(hide bibtex)
@misc{mitchell:supero_2009_3_3
,title = {Supercompilation for {Haskell}}
,author = {Neil Mitchell}
,year = {2009}
,month = {March}
,day = {3}
,note = {Presentation from Fun in the Afternoon Spring 2009}
,url = {\verb'http://community.haskell.org/~ndm/downloads/slides-supercompilation_for_haskell-03_mar_2009.pdf'}
}
- A Supercompiler for Core Haskell - from IFL 2007 post proceedings (abstract)(hide abstract)
Haskell is a functional language, with features such as higher
order functions and lazy evaluation, which allow succinct programs. These
high-level features present many challenges for optimising compilers. We
report practical experiments using novel variants of supercompilation,
with special attention to let bindings and the generalisation technique.
(bibtex)(hide bibtex)@inproceedings{mitchell:supero_2008_5_1
,title = {A Supercompiler for Core {Haskell}}
,author = {Neil Mitchell and Colin Runciman}
,year = {2008}
,month = {May}
,day = {1}
,pages = {147--164}
,booktitle = {IFL 2007}
,editor = {Olaf Chitil et al.}
,series = {LNCS}
,volume = {5083}
,publisher = {Springer-Verlag}
,url = {\verb'http://community.haskell.org/~ndm/downloads/paper-a_supercompiler_for_core_haskell-01_may_2008.pdf'}
}
- Supero: Making Haskell Faster - from IFL 2007 (abstract)(hide abstract)
Haskell is a functional language, with features such as higher
order functions and lazy evaluation, which allow succinct programs. These
high-level features are difficult for fast execution, but GHC is a mature
and widely used optimising compiler. This paper presents a whole-program
approach to optimisation, which produces speed improvements
of between 10% and 60% when used with GHC, on eight benchmarks.
(bibtex)(hide bibtex)@inproceedings{mitchell:supero_2007_9_27
,title = {Supero: Making {Haskell} Faster}
,author = {Neil Mitchell and Colin Runciman}
,year = {2007}
,month = {September}
,day = {27}
,booktitle = {IFL 2007: Draft Proceedings of the 19th International Symposium on Implementation and Application of Functional Languages}
,location = {Freiburg, Germany}
,publisher = {Tech. Report No. 12-07 of the Computing Laboratory, University of Kent, UK}
,editor = {Olaf Chitil}
,pages = {334--349}
,url = {\verb'http://community.haskell.org/~ndm/downloads/paper-supero_making_haskell_faster-27_sep_2007.pdf'}
}
- Faster Haskell - from Anglo Haskell 2007 (bibtex)(hide bibtex)
@misc{mitchell:supero_2007_8_10
,title = {Faster {Haskell}}
,author = {Neil Mitchell}
,year = {2007}
,month = {August}
,day = {10}
,note = {Presentation from Anglo Haskell 2007}
,url = {\verb'http://community.haskell.org/~ndm/downloads/slides-faster_haskell-10_aug_2007.pdf'}
}
- Fastest Lambda First - from PLASMA (bibtex)(hide bibtex)
@misc{mitchell:supero_2007_5_30
,title = {Fastest Lambda First}
,author = {Neil Mitchell}
,year = {2007}
,month = {May}
,day = {30}
,note = {Presentation from PLASMA}
,url = {\verb'http://community.haskell.org/~ndm/downloads/slides-fastest_lambda_first-30_may_2007.pdf'}
}
- Haskell With Go Faster Stripes - from PLASMA (bibtex)(hide bibtex)
@misc{mitchell:supero_2006_11_30
,title = {Haskell With Go Faster Stripes}
,author = {Neil Mitchell}
,year = {2006}
,month = {November}
,day = {30}
,note = {Presentation from PLASMA}
,url = {\verb'http://community.haskell.org/~ndm/downloads/slides-haskell_with_go_faster_stripes-30_nov_2006.pdf'}
}