@book(appel:cps-book, author = {Andrew W. Appel}, year = {1992}, title = {Compiling with Continuations}, publisher = {Cambridge University Press}, address = {Cambridge, England}, ) @article(appel:ssa, author = {Andrew W. Appel}, year = {1998}, title = {{SSA is Functional Programming}}, journal = {SIGPLAN notices}, volume = {33}, number = {4}, pages = {17--20}, doi = {10.1145/278283.278285}, ) @inproceedings(effective-ho-optimizations, author = {Lars Bergstrom and Matthew Fluet and Matthew Le and John Reppy and Nora Sandler}, year = {2014}, title = {Practical and Effective Higher-order Optimizations}, booktitle = {{ICFP '14}}, publisher = {ACM}, address = {New York, NY}, pages = {81--93}, doi = {10.1145/2628136.2628153}, ) @inproceedings(data-only-flattening, author = {Lars Bergstrom and Matthew Fluet and Mike Rainey and John Reppy and Stephen Rosen and Adam Shaw}, year = {2013}, title = {Data-Only Flattening for Nested Data Parallelism}, booktitle = {{PPoPP '13}}, publisher = {ACM}, address = {New York, NY}, pages = {90--106}, doi = {10.1145/2442516.2442525}, ) @inproceedings(arity-raising, author = {Lars Bergstrom and John Reppy}, year = {2009}, title = {Arity raising in Manticore}, booktitle = {{IFL '09}}, series = {{LNCS}}, publisher = {Springer-Verlag}, address = {New York, NY}, pages = {90--106}, doi = {10.1007/978-3-642-16478-1_6}, ) @techreport(cardelli1983, author = {Luca Cardelli}, year = {1983}, title = {The Functional Abstract Machine}, type = {Technical Report}, number = {TR-107}, institution = {Bell Laboratories}, ) @article(representing-control:cps-study, author = {Olivier Danvy and Andrzej Filinski}, year = {1992}, title = {Representing Control: {A} study of the {CPS} transformation}, journal = {{MSCS}}, volume = {2}, number = {4}, pages = {361--391}, doi = {10.1017/S0960129500001535}, ) @misc(llvm:passes, author = {LLVM Developers}, year = {2017}, title = {{LLVM’s Analysis and Transform Passes}}, url = {http://llvm.org/docs/Passes.html}, ) @misc(llvm:advice, author = {LLVM Developers}, year = {2017}, title = {{Performance Tips for Frontend Authors}}, url = {https://llvm.org/docs/Frontend/PerformanceTips.html\#pass-ordering}, ) @article(swapstack, author = {Stephen Dolan and Servesh Muralidharan and David Gregg}, year = {2013}, title = {Compiler Support for Lightweight Context Switching}, journal = {ACM Trans. Archit. Code Optim.}, volume = {9}, number = {4}, pages = {36:1--36:25}, doi = {10.1145/2400682.2400695}, ) @misc(llvm:tailUnreachable, author = {Rafael \'Avila de Esp\'indola}, year = {2012}, title = {{LLVM Bug 13826 - unreachable prevents tail calls}}, url = {https://llvm.org/bugs/show_bug.cgi?id=13826}, ) @misc(llvm:musttailUnreachable, author = {Kavon Farvardin}, year = {2015}, title = {{LLVM Bug 23766 - musttail calls are not allowed to precede unreachable}}, url = {https://llvm.org/bugs/show_bug.cgi?id=23766}, ) @misc(autotune-passes, author = {Kavon Farvardin}, year = {2017}, title = {{autotune -- discover good LLVM passes}}, url = {https://github.com/kavon/autotune}, ) @inproceedings(manticore-ml07, author = {Matthew Fluet and Nic Ford and Mike Rainey and John Reppy and Adam Shaw and Yingqi Xiao}, year = {2007}, title = {{S}tatus {R}eport: {T}he {Manticore} {P}roject}, booktitle = {{ML '07}}, publisher = {ACM}, address = {New York, NY}, pages = {15--24}, doi = {10.1145/1292535.1292539}, ) @inproceedings(sched-framework-for-parallel, author = {Matthew Fluet and Mike Rainey and John Reppy}, year = {2008}, title = {A Scheduling Framework for General-purpose Parallel Languages}, booktitle = {{ICFP '08}}, publisher = {ACM}, address = {New York, NY}, pages = {241--252}, doi = {10.1145/1411203.1411239}, ) @article(implicit-threading-in-manticore:jfp, author = {Matthew Fluet and Mike Rainey and John Reppy and Adam Shaw}, year = {2011}, title = {Implicitly-threaded Parallelism in {Manticore}}, journal = {{JFP}}, volume = {20}, number = {5--6}, pages = {537--576}, doi = {10.1017/S0956796810000201}, ) @inproceedings(mlrisc, author = {Lal George and Florent Guillame and John Reppy}, year = {1994}, title = {A portable and optimizing back end for the {SML/NJ} compiler}, booktitle = {{CC '94}}, series = {{LNCS}}, volume = {786}, publisher = {Springer-Verlag}, address = {New York, NY}, pages = {83--97}, doi = {10.1007/3-540-57877-3_6}, ) @incollection(cmm, author = {Simon Peyton Jones and Norman Ramsey and Fermin Reig}, year = {1999}, title = {{C--\tmspace+\thinmuskip{.1667em}--: A Portable Assembly Language that Supports Garbage Collection}}, booktitle = {PPDP '99}, publisher = {Springer-Verlag}, address = {New York, NY}, pages = {1--28}, doi = {10.1007/10704567_1}, ) @misc(llvm:musttailProposal, author = {Reid Kleckner}, year = {2014}, title = {{Proposal: Add a guaranteed tail call marker}}, url = {http://lists.llvm.org/pipermail/llvm-dev/2014-April/071704.html}, ) @mastersthesis(lattner:masters-thesis, author = {Chris Lattner}, year = {2002}, title = {{LLVM}: An Infrastructure for Multi-Stage Optimization}, school = {C.S.\ Dept., UIUC}, address = {Urbana, IL}, ) @inproceedings(llvm-compilation-framework, author = {Chris Lattner and Vikram Adve}, year = {2004}, title = {{LLVM: A Compilation Framework for Lifelong Program Analysis \& Transformation}}, booktitle = {{CGO '04}}, pages = {75--}, url = {http://dl.acm.org/citation.cfm?id=977395.977673}, ) @inproceedings(manticore:stm, author = {Matthew Le and Matthew Fluet}, year = {2015}, title = {Partial Aborts for Transactions via First-class Continuations}, booktitle = {{ICFP '15}}, publisher = {ACM}, address = {New York, NY}, pages = {230--242}, doi = {10.1145/2784731.2784736}, ) @mastersthesis(llvm:mlton, author = {Brian Andrew Leibig}, year = {2013}, title = {{An LLVM Back-end for MLton}}, school = {Rochester Institute of Technology}, url = {https://www.cs.rit.edu/~mtf/student-resources/20124_leibig_msproject.pdf}, ) @misc(llvm:inefficienttail, author = {David Majnemer}, year = {2015}, title = {{LLVM Bug 23470 - Inefficient lowering of 'musttail' call }}, url = {https://llvm.org/bugs/show_bug.cgi?id=23470}, ) @inproceedings(parallel-cml, author = {John Reppy and Claudio Russo and Yingqi Xiao}, year = {2009}, title = {Parallel {C}oncurrent {ML}}, booktitle = {{ICFP '09}}, publisher = {ACM}, address = {New York, NY}, pages = {257--268}, doi = {10.1145/1596550.1596588}, ) @techreport(reppy:signals, author = {John H. Reppy}, year = {1990}, title = {Asynchronous signals in {Standard ML}}, type = {Technical Report}, number = {TR 90-1144}, institution = {Dept. of CS, Cornell University}, address = {Ithaca, NY}, ) @inproceedings(llvm:erlang, author = {Konstantinos Sagonas and Chris Stavrakakis and Yiannis Tsiouris}, year = {2012}, title = {{ErLLVM}: An {LLVM} Backend for {Erlang}}, booktitle = {{ERLANG '12}}, publisher = {ACM}, address = {New York, NY}, pages = {21--32}, doi = {10.1145/2364489.2364494}, ) @article(sml2c, author = {David Tarditi and Peter Lee and Anurag Acharya}, year = {1992}, title = {{No Assembly Required: Compiling Standard ML to C}}, journal = {{ACM} {LOPLAS}}, volume = {1}, number = {2}, pages = {161--177}, doi = {10.1145/151333.151343}, ) @misc(procpoint, author = {GHC Team}, year = {2011}, title = {{Work in Progress on the LLVM Backend: Get rid of Proc Point Splitting}}, url = {https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM/WIP\#GetridofProcPointSplitting}, ) @inproceedings(llvm:ghc, author = {David A. Terei and Manuel M.T. Chakravarty}, year = {2010}, title = {{An LLVM Backend for GHC}}, booktitle = {{HASKELL '10}}, publisher = {ACM}, address = {New York, NY}, pages = {109--120}, doi = {10.1145/1863523.1863538}, ) @inproceedings(llvm:smlsharp, author = {Katsuhiro Ueno and Atsushi Ohori}, year = {2014}, title = {{Compiling SML\# with LLVM: a Challenge of Implementing ML on a Common Compiler Infrastructure}}, booktitle = {Workshop on ML}, pages = {1--2}, url = {https://sites.google.com/site/mlworkshoppe/smlsharp_llvm.pdf}, )