Changes between Version 12 and Version 13 of Status/Oct10

Oct 26, 2010 12:29:15 AM (4 years ago)

Added LLVM backend details.


  • Status/Oct10

    v12 v13  
    1717 Here, `f` will be inlined into `g1` as you'd expect, but obviously not into `g2` (since it's not applied to anything).  However `f`'s right hand side will be optimised (separately from the copy retained for inlining) so that the call from `g2` runs optimised code. 
    19  * David Terei implemented a new back end for GHC using LLVM.  '''David: a few sentences more; include a citation.''' 
     19 * David Terei implemented a new back end for GHC using LLVM. In certain situations using the LLVM backend can give fairly substantial performance improvements to your code, particularly if you're using the Vector libraries, DPH or making heavy use of fusion. In the general case it should give as good performance or slightly better than GHC's native code generator and C backend. You can use it through the '-fllvm' compiler flag. More details of the backend can be found in David's and Manuel Chakravarty's Haskell Symposium paper [Llvm]. 
    2121 * Bryan O’Sullivan and Johan Tibell and implemented a new, highly-concurrent I/O manager. GHC now supports over a hundred thousand open I/O connections. The new I/O manager defines a separate backend per operating system, using the most efficient system calls for that particular operating system (e.g. `epoll` on Linux.) This means that GHC can now be used to implement servers that make use of e.g. HTTP long polling, where the server needs to handle a large number of open idle connections. 
    9090 * [Newtype] "Generative Type Abstraction and Type-level Computation", Weirich, Zdancewic, Vytiniotis, and Peyton Jones, POPL 2010, 
     92 * [Llvm] "An LLVM Backend for GHC", Terei and Chakravarty, Haskell Symposium 2010, 
    9294 * [Seq] "Seq no more", Marlow, Maier, Trinder, Loidl, and Aswad, Haskell Symposium 2010,